我是WPF的新手,目前正在使用 triggers
。我有一个关于简单触发器的问题。所谓简单触发,是指监视 dependency property
的更改并使用 setter
更改样式的触发器。
例子:
<Style.Triggers>
<Trigger Property="Control.IsFocused" Value ="True">
<Setter Property=" Control.Foreground" Value =" DarkRed" />
</Trigger>
</Style.Triggers>
我看到的所有示例都使用以下
trigger properties
:<Trigger Property="Control.IsFocused" Value ="True">
<Trigger Property="Control.IsMouseOver" Value ="True">
<Trigger Property="Button.IsPressed" Value ="True">
问题:
这些是唯一可用的触发器属性吗?如果没有,还有哪些呢?
我在网上搜索,但无济于事。也许有人可以对此有所了解。
最佳答案
这些不是您可以在Triggers
中使用的唯一属性,但是,它们是常见的示例,因为它们易于理解和演示。
实际上,您可以让Trigger
监视任何DependencyProperty
,但是由于值更改(并且与您告诉它监视的Value
匹配)时,它会被“触发”,因此通常只有在运行时使用会更改的属性才有意义来自用户操作(例如焦点,鼠标悬停,按下等)。在这种情况下,只有某些DependencyProperties
实际更改值,因此并非所有这些值都可以在Triggers
中使用。
Microsoft已在标准控件中添加了几个DependencyProperties
,以便您可以轻松地基于更改创建触发器。但是,您也可以使用自己的DependencyProperties
创建自己的控件,并使触发器在您的自定义DependencyProperties
更改时做出响应。
请记住,PropertyTriggers
只是WPF中Trigger
的一种。还有EventTriggers
,DataTriggers
和MultiTriggers
。这些其他触发器基于事件或数据更改,或者在MultiTriggers
的情况下,多个属性(或数据)值触发。
您要尝试使用Triggers
进行某些特定处理吗? This other answer很好地解释了每种触发器的功能。
关于WPF触发器属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15160874/