Dom*_*Dom 7 wpf xaml triggers properties
我是WPF的新手,我目前正在与之合作triggers.我有一个关于简单触发器的问题.通过简单的触发器,我指的是一个观察a中的变化dependency property并使用a setter来改变样式的触发器.
例:
<Style.Triggers>
<Trigger Property="Control.IsFocused" Value ="True">
<Setter Property=" Control.Foreground" Value =" DarkRed" />
</Trigger>
</Style.Triggers>
Run Code Online (Sandbox Code Playgroud)
我见过的所有例子都使用了以下内容trigger properties:
<Trigger Property="Control.IsFocused" Value ="True"><Trigger Property="Control.IsMouseOver" Value ="True"><Trigger Property="Button.IsPressed" Value ="True">问题:这些是唯一可用的触发属性吗?如果没有,其他人存在什么?
我在网上搜索但无济于事.也许有人可以对此有所了解.
Bri*_*n S 15
这些并不是您可以在您使用的唯一属性Triggers,但是,它们是常见示例,因为它们易于理解且易于演示.
事实上,您可以随意使用Trigger手表DependencyProperty,但由于它在值发生变化时会被"触发"(并且与Value您指示的内容相匹配),因此只使用将在运行时更改的属性(通常来自用户操作)才有意义(例如焦点,鼠标悬停,按下等).DependencyProperties在这些情况下只有一定的实际变化值,因此并非所有这些都有意义Triggers.
Microsoft已DependencyProperties在标准控件中添加了几个,以便您可以根据更改轻松创建触发器.但是,您也可以使用自己的控件创建自己的控件,DependencyProperties并在自定义DependencyProperties更改时使用触发器进行响应.
请记住,WPF PropertyTriggers中只有一种风格Trigger.也有EventTriggers和DataTriggers和MultiTriggers.这些其他触发器基于事件或数据更改触发,或者在MultiTriggers多个属性(或数据)值的情况下触发.
你有什么具体的事情要做Triggers吗? 这个其他答案很好地解释了每种类型的触发器的作用.
有多种类型的WPF触发器,但最常用的两个是定期Triggers和DataTriggers
两种类型的触发器都会观察一个值,当它更改为与指定值匹配时,Value它们将应用您的样式设置器.
常规触发器可用于对象的任何依赖属性.这包括像性能Text,Visibility,Background,等除了您指定的更常见的触发属性:IsFocused,IsMouseOver,和IsPressed.
请注意,根据有关Trigger.Property的MSDN页面,如果包含触发器的样式或模板具有其TargetType属性集,则无需指定类名前缀
记住它的一种简单方法是,如果您可以绑定属性,则可以在其上设置触发器.
DataTriggers是监视绑定值而不是依赖属性的触发器.它们允许您观察绑定表达式,并在绑定计算结果等于您的值时作出反应.
例如,您可以设置DataTrigger打开"{Binding Value}"或"{Binding ElementName=MyTextBox, Path=IsChecked}".您甚至可以使用ConvertersDataTriggers,例如
<DataTrigger
Binding="{Binding SomeInt, Converter={StaticResource IsGreaterThanZero}}"
Value="True">
Run Code Online (Sandbox Code Playgroud)