WPF触发器属性

标签 wpf xaml properties triggers

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

    您要尝试使用Triggers进行某些特定处理吗? This other answer很好地解释了每种触发器的功能。

    关于WPF触发器属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15160874/

    相关文章:

    c# - 使用 EF 保存后在 MutliSelectComboBox 中显示项目集合的问题

    c# - EventToCommand 和 CommandManagerBinding 不工作

    c# - WP7.5 中的 NavigationContext.QueryString.TryGetValue NullReferenceException

    .net - 设计模式下的XamlParseExceptions-使设计模式无用

    c# - 绑定(bind)运行次数可变的 RichTextBox

    java - 如何使用 Apache Commons CLI 解析属性文件和 --help 选项?

    c# - WPF 中的上下文文本编辑器

    c# - MVVM访问整个 View 的实践

    javascript - 单击时“提醒”对象属性

    Java 属性文件绑定(bind)到 Java 接口(interface)