【问题标题】:WPF Trigger to change CursorWPF 触发器更改光标
【发布时间】:2009-07-15 18:04:55
【问题描述】:

我需要在触发器中更改 TreeViewItem 的光标。此代码适用于所有其他属性,但不适用于 Cursor:

<Style.Triggers>
  <MultiTrigger>
     <MultiTrigger.Conditions>
        <Condition Property="QuickPhrases:TreeViewChecker.IsMouseDirectlyOverItem"    
                   Value="True">
        </Condition>
        <Condition Property="CanSelect" Value="True"></Condition>
      </MultiTrigger.Conditions>
      <Setter Property="BorderThickness" Value="0,0,0,1" />
      <Setter Property="BorderBrush" Value="Blue" />
      <Setter Property="Cursor" Value="Hand"></Setter>
      <Setter Property="Foreground" Value="Blue"></Setter>
  </MultiTrigger>
</Style.Triggers>

什么给出了,还有,我该如何正确地做到这一点?

【问题讨论】:

    标签: wpf triggers mouse-cursor


    【解决方案1】:

    你做得对,它应该可以工作。事实上,我无法通过以下步骤重现您的问题:

    • 通过 VS 2008 C# WPF 应用程序向导创建了一个新项目。
      • 导致 App.xaml 和 Window1.xaml
    • 将工具箱中的标准 TreeView 添加到 Window1。
    • 添加了 2 个 TreeViewItem '1' 和 '2'。
    • 添加了带有TargetType="TreeViewItem" 的样式。
    • 按原样粘贴您的 sn-p,但当然将条件修改为本地内容。

    嗯,这很好用,即一旦将鼠标悬停在 TreeViewItem 上,光标就会触发到我在触发器中选择的任何值,无论是“Hand”还是“Wait”。

    一个重要的细节:光标仅在直接悬停在标题上时出现,即不是整行(这与 WPF TreeViewItem 行行为一致,请参阅here 以获取相关示例关于行突出显示)。特别是当 TeeViewItem 标头为空时,光标确实出现!您是否为标题提供了任何数据?

    否则他们一定是在您的项目/环境的幕后发生了一些奇怪的事情吗?您是否已经尝试过这样一个简单的复制案例?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2018-05-27
      • 2012-07-19
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 2010-12-19
      相关资源
      最近更新 更多