WPF触发器改变光标

7

我需要在触发器中更改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>

什么是“give”,以及如何正确地使用它?
1个回答

4
您做得很正确,应该可以正常工作。实际上,我无法通过以下步骤重现您的问题:
  • 通过VS 2008 C# WPF应用程序向导创建一个新项目。
    • 生成App.xaml和Window1.xaml
  • 在Window1中添加一个标准TreeView。
  • 添加2个TreeViewItems“1”和“2”。
  • 添加一个样式,其中TargetType="TreeViewItem"
  • 按原样粘贴您的片段,但当然要修改条件为本地内容。

好吧,这很好运行,即一旦悬停在TreeViewItem上,光标就会触发到我选择的任何值,无论是“Hand”还是“Wait”或其他。

但有一个重要的细节:只有在悬停在标题上方时,即不是整行(这与WPF TreeViewItem行为一致,有关行突出显示的相关示例,请参见此处)。特别是当TeeViewItem标题为空时,光标会出现!您是否已经为标题提供了任何数据?

否则,可能是您的项目/环境中发生了一些奇怪的事情?您是否已经尝试过像这样的简单重现案例?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接