WPF触发改变光标(WPF Trigger to change Cursor)

2019-09-19 02:39发布

我需要改变一个TreeViewItem的光标触发。 此代码适用于所有其他属性而不是光标:

<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>

是什么给了,而且,我怎么做是正确的?

Answer 1:

你是做正确,它应该只是工作。 事实上我无法通过以下步骤来重现您的问题:

  • 通过创建VS 2008 C#WPF应用程序向导创建新项目。
    • 导致的App.xaml和Window1.xaml
  • 从工具箱中添加窗口1标准的TreeView。
  • 新增2个TreeViewItems '1' 和 '2'。
  • 新增样式与TargetType="TreeViewItem"
  • 粘贴你的代码片段原样,但修改了条件,当地的东西当然。

好吧,这只是工作的罚款,即一旦徘徊在一个树型视图光标被触发到我选择在触发任何值,无论是“手”或“等待”或其他。

一个重要的细节,但:光标仅在直接在标题出现徘徊,即整行(这是WPF树型视图行行为是一致的,虽然,看到这里了解有关行高亮相关的例子)。 特别是当TeeViewItem头是空的,光标不会出现! 您是否提供了这些接头连接任何数据?

否则,他们必须在一些奇怪的事情在你的项目/环境幕后? 您是否尝试过一个简单的摄制情况下这样了吗?



文章来源: WPF Trigger to change Cursor