- Style的属性:Setters(包括Setter和EventSetter),BasedOn,TargetType,Triggers,Resources,IsSealed,Dispatcher
例子:
1 <Style TargetType="Button" x:Key="myStyle“ BasedOn=”“> 2 <Setter Property="Foreground" Value="Blue"/> 3 <Setter Property="FontFamily " Value="CourierNew"/> 4 </Style>
2.BasedOn语法:BasedOn="{StaticResource 基类风格Key}" 或者BasedOn="{StaticResource {x:Type 控件风格类型}}" 如:
<Style x:Key="RedNormal" BasedOn="{StaticResource nomal}"> 或者 <Style BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
3.wpf中定义了5个触发器类:DataTrigger,MutiTrigger,Trigger,MutiDataTrigger,EventTrigger。触发去器的定义在<Style.Triggers>....</Style.Triggers>中
- 使用Trigger(单一条件触发)的例子:
1 <Trigger Property="Control.IsMouseOver" Value="True"> 2 <Setter Property="Control.Foreground" Value="Red"/> 3 <Setter Property="Control.FontSize" Value="24"/> 4 </Trigger>
- 使用MultiTrigger(多条件触发),语法为:
1 <MultiTrigger> 2 <MultiTrigger.Conditions> 3 <Condition Property="相关属性" Value="相关属性的值"/> 4 .... 5 <Condition Property="相关属性" Value="相关属性的值"/> 6 </MultiTrigger.Conditions> 7 <Setter Property="相关属性" Value="相关属性的值"/> 8 </MultiTrigger>
- 使用DataTrigger 和MultiDataTriggerd的例子:
-
1 <Style.Triggers> 2 <DataTrigger Binding="{Binding ElementName=italicFont,Path=IsChecked}" Value="True"> 3 <Setter Property="Control.FontStyle" Value="Italic"/> 4 </DataTrigger> 5 <DataTrigger Binding="{Binding ElementName=redFont,Path=IsChecked}" Value="True"> 6 <Setter Property="Control.Foreground" Value="Red"/> 7 </DataTrigger> 8 <MultiDataTrigger> 9 <MultiDataTrigger.Conditions> 10 <Condition Binding="{Binding ElementName=italicFont1,Path=IsChecked}" Value="True"/> 11 <Condition Binding="{Binding ElementName=redFont1,Path=IsChecked}" Value="True"/> 12 </MultiDataTrigger.Conditions> 13 <Setter Property="Control.FontStyle" Value="Italic"/> 14 <Setter Property="Control.Foreground" Value="Red"/> 15 </MultiDataTrigger> 16 </Style.Triggers>

浙公网安备 33010602011771号