如何为 TreeView 中的工具提示提供 MaxWidth(或自定义样式)

How to give MaxWidth (or custom styling) to the ToolTip in a TreeView

我有一个带有 TreeView 的 ResourceDictionary。

在这里,我试图为我的 MainItemStyle 的工具提示提供一个 MaxWidth(因为我的绑定文本 'TxtDescription' 很长),为此我尝试为这个工具提示提供一个模板,但它被应用了改为基础 TreeViewItem。

此外,我试图将工具提示设置为仅 TreeView header 项,但我认为这对于 TreeView 的结构是不可能的。

我的代码是这样的:

<ResourceDictionary>
<TreeView ItemsSource="{Binding MainItems, UpdateSourceTrigger=PropertyChanged}"
          ItemContainerStyle="{StaticResource MainItemStyle}">
        <TreeView.ItemTemplate>
          <HierarchicalDataTemplate ItemsSource="{Binding ChildList}" ItemTemplate="{StaticResource childTemplate}" ItemContainerStyle="{StaticResource ChildItemStyle}">           
          </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>        
</TreeView>

<Style x:Key="basicStyle" TargetType="TreeViewItem" BasedOn="{StaticResource {x:Type TreeViewItem}}">
    <Setter Property="Margin" Value="0"/>
    <Setter Property="Padding" Value="2,2"/>    
    <Setter Property="SnapsToDevicePixels" Value="True"/>    
  </Style>

  <Style x:Key="ChildItemStyle" TargetType="TreeViewItem" BasedOn="{StaticResource basicStyle}">    
  </Style>

  <Style x:Key="MainItemStyle" TargetType="TreeViewItem" BasedOn="{StaticResource basicStyle}">
    <Setter Property="ToolTip" Value="{Binding TxtDescription}"/>    
  </Style>
</ResourceDictionary>

任何人都可以在这里为工具提示的 MaxWidth(或样式)提供任何解决方案。非常感谢。

只需将 ToolTip 控件分配给 TreeViewItem.ToolTip 属性 并自定义它:

<Style x:Key="MainItemStyle" TargetType="TreeViewItem" BasedOn="{StaticResource basicStyle}">
  <Setter Property="ToolTip">
    <Setter.Value>
      <ToolTip Content="{Binding TxtDescription}" 
               MaxWidth="500" />    
    </Setter.Value>
  </Setter>
</Style>