WPF中有种叫做触发器的东西(记住不是数据库的trigger哦)。它的主要作用是根据trigger的不同条件来自动更改外观属性,或者执行动画等操作。
WPFtrigger的主要类型有:Trigger、MultiTrigger、DataTrigger、MultiDataTrigger、EventTrigger几种。从字面意思上我们想大家已经知道个大概,接下来我将还会用实例代码逐一进行介绍。trigger主要运用的场景在Style、ControlTemplate、DataTemplate三个地方。在这些地方可以使用trigger,具体视情况而定。
1.在Style中使用各种trigger
在style中使用的trigger主要是属性的触发器,当属性的值发生改变是将会引发触发器。
a.普通属性trigger 当鼠标滑过时字体变成红色
"Style Trigger MouseOver Red">
b.普通属性MultiTrigger 当checkbox勾选并且鼠标滑过时字体变成绿色
"Style MultiTrigger Checked and MouseOver Green ">
c.EventTrigger 鼠标划入长度变长 鼠标移出 长度变短
"Style EventTrigger " Width="70" HorizontalAlignment="Left">
2.在ControlTemplate中使用trigger
在ControlTemplate中使用的trigger主要是在controltemplate中的元素的触发器,当属性的值发生改变是将会引发触发器。
属性为“Border” 的鼠标滑过时背景变色,其他的trigger同上面的style一样 这里就不多举例了
3.在DataTemplate中使用trigger
在DataTemplate中使用trigger可以根据绑定的数据不同显示不同的内容。
"_tree" Margin="0" BorderThickness="0" VerticalAlignment="Stretch" Background="Transparent" ItemsSource="{Binding Children}" > "{Binding Children}"> "0" Margin="1" x:Name="back" MinWidth="70" Background="Transparent" DataContext="{Binding}" PreviewMouseMove="TreeItem_PreviewMouseMove"> "Horizontal" Margin="2"> "BGimage" Source="/Vdc3D.Coms.DModelEditor;component/Images/item.png" Height="15" Width="15" /> "{Binding ShowText}" Margin="2 0"/> "menu" > "{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TreeViewItem}},Path=IsExpanded}" Value="False"/> "{Binding IsDir}" Value="True"/> "BGimage" Property="Source" Value="/Vdc3D.Coms.DModelEditor;component/Images/dir.png" /> "{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TreeViewItem}},Path=IsExpanded}" Value="True"/> "{Binding IsDir}" Value="True"/> "BGimage" Property="Source" Value="/Vdc3D.Coms.DModelEditor;component/Images/dir_open.png" /> "{Binding IsDir}" Value="True"> "menu_addDir" Property="Visibility" Value="Visible"/> "menu_addChild" Property="Visibility" Value="Visible"/> "{Binding IsDir}" Value="False"> "menu_addDir" Property="Visibility" Value="Collapsed"/> "menu_addChild" Property="Visibility" Value="Collapsed"/>
以上只是简单的介绍了trigger的一些用法,具体的功能大家可以自由发挥,这也是wpf的强大之处