WPF触发器属性

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.也有EventTriggersDataTriggersMultiTriggers.这些其他触发器基于事件或数据更改触发,或者在MultiTriggers多个属性(或数据)值的情况下触发.

你有什么具体的事情要做Triggers吗? 这个其他答案很好地解释了每种类型的触发器的作用.


Rac*_*hel 8

有多种类型的WPF触发器,但最常用的两个是定期TriggersDataTriggers

两种类型的触发器都会观察一个值,当它更改为与指定值匹配时,Value它们将应用您的样式设置器.

常规触发器可用于对象的任何依赖属性.这包括像性能Text,Visibility,Background,等除了您指定的更常见的触发属性:IsFocused,IsMouseOver,和IsPressed.

请注意,根据有关Trigger.PropertyMSDN页面,如果包含触发器的样式或模板具有其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)