凌波星子

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  1. 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>                                           

     

         
posted on 2012-05-30 15:57  凌波星子  阅读(267)  评论(0)    收藏  举报