1. <Window x:Class="WpfApplication1.Window1"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:UC="clr-namespace:WpfApplication1"
    5. xmlns:UC1="clr-namespace:WpfControlLibrary1;assembly=WpfControlLibrary1"
    6. xmlns:sys="clr-namespace:System;assembly=mscorlib"
    7. Title="Window1" Height="300" Width="300">
    8. <Window.Resources>
    9. <!--
    10. Button控件样式
    11. -->
    12. <Style TargetType="Button">
    13. <Setter Property="Background" Value="Pink"/>
    14. <Setter Property="FontSize" Value="22"/>
    15. </Style>
    16. <!--
    17. XAML的Class
    18. -->
    19. <Style x:Key="mystyle" TargetType="ContentControl">
    20. <Setter Property="Background" Value="Peru"/>
    21. <Setter Property="FontSize" Value="30"/>
    22. </Style>
    23. <!--
    24. 继承mystyle
    25. -->
    26. <Style x:Key="mystyle2" TargetType="ContentControl" BasedOn="{StaticResource ResourceKey=mystyle}">
    27. <!--覆盖基类样式-->
    28. <Setter Property="Background" Value="Red" />
    29. </Style>
    30. </Window.Resources>
    31. <Grid>
    32. <Grid.RowDefinitions>
    33. <RowDefinition Height="*"/>
    34. <RowDefinition Height="*"/>
    35. <RowDefinition Height="*"/>
    36. <RowDefinition Height="*"/>
    37. </Grid.RowDefinitions>
    38. <Grid.ColumnDefinitions>
    39. <ColumnDefinition Width="*"/>
    40. </Grid.ColumnDefinitions>
    41. <Button Content="Button" Grid.Row="0"/>
    42. <Button Style="{StaticResource ResourceKey=mystyle}"
    43. Content="XAML的Class" Grid.Row="1"/>
    44. <Button Style="{StaticResource ResourceKey=mystyle2}"
    45. Content="样式的继承mystyle" Grid.Row="2"/>
    46. <Button Content="Button嵌入样式" Grid.Row="3">
    47. <Button.Resources>
    48. <Style TargetType="Button" >
    49. <Setter Property="Background" Value="Coral"></Setter>
    50. </Style>
    51. </Button.Resources>
    52. </Button>
    53. </Grid>
    54. </Window>

    WPF样式 - 图1

    1. <Window x:Class="WpfApplication1.Window1"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:UC="clr-namespace:WpfApplication1"
    5. xmlns:UC1="clr-namespace:WpfControlLibrary1;assembly=WpfControlLibrary1"
    6. xmlns:sys="clr-namespace:System;assembly=mscorlib"
    7. Title="Window1" Height="300" Width="300">
    8. <Window.Resources>
    9. <Style x:Key="TriggersStyle" TargetType="Label">
    10. <Setter Property="Background" Value="BurlyWood"/>
    11. <Style.Triggers>
    12. <!--Triggers单一条件触发事件 当IsMouseOver的时候,Button颜色变成粉色 -->
    13. <Trigger Property="IsMouseOver" Value="True">
    14. <Setter Property="Background" Value="Pink"/>
    15. </Trigger>
    16. </Style.Triggers>
    17. </Style>
    18. <Style x:Key="MultiTriggerStyle" TargetType="Button">
    19. <Setter Property="Background" Value="BurlyWood"/>
    20. <Style.Triggers>
    21. <!--MultiTrigger多条件触发事件 当IsMouseOver后IsPressed时候,字体30号 -->
    22. <MultiTrigger>
    23. <MultiTrigger.Conditions>
    24. <Condition Property="IsMouseOver" Value="True"></Condition>
    25. <Condition Property="IsPressed" Value="True"></Condition>
    26. </MultiTrigger.Conditions>
    27. <Setter Property="FontSize" Value="30"/>
    28. </MultiTrigger>
    29. </Style.Triggers>
    30. </Style>
    31. <Style x:Key="DataTriggerStyle" TargetType="Control">
    32. <Setter Property="Background" Value="Brown"/>
    33. <Style.Triggers>
    34. <!-- 绑定当前的radio单选框,如果按钮选中,触发字体设置 -->
    35. <DataTrigger Binding="{Binding ElementName=radio, Path=IsChecked}" Value="True">
    36. <Setter Property="FontSize" Value="30"/>
    37. </DataTrigger>
    38. </Style.Triggers>
    39. </Style>
    40. </Window.Resources>
    41. <Grid>
    42. <Grid.RowDefinitions>
    43. <RowDefinition Height="*"></RowDefinition>
    44. <RowDefinition Height="*"></RowDefinition>
    45. <RowDefinition Height="*"></RowDefinition>
    46. </Grid.RowDefinitions>
    47. <Grid.ColumnDefinitions>
    48. <ColumnDefinition Width="*"></ColumnDefinition>
    49. </Grid.ColumnDefinitions>
    50. <Label Style="{StaticResource ResourceKey=TriggersStyle}" Content="Triggers"></Label>
    51. <Button Style="{StaticResource ResourceKey=MultiTriggerStyle}" Content="MultiTrigger" Grid.Row="1"></Button>
    52. <RadioButton Style="{StaticResource ResourceKey=DataTriggerStyle}" Name="radio" Content="我要变成20号字" Grid.Row="2"></RadioButton>
    53. </Grid>
    54. </Window>