C# WPF 如何在选项卡控件中设置工具提示大小

C# WPF how to set tooltip size in a tabcontrol

我有一个 tabcontrol,其中每个 tabITem 都呈现一个非常大的字体符号(见下图)

现在根据前面提到的 tabItem 字符的非常大的大小,工具提示设置为非常大的大小。

我想要的是保持 tabItem 符号非常大,但能够调整工具提示字体的大小。

加上 我不明白为什么在所有 children 上随机设置制表符工具提示。我希望它在制表符本身上而不是到处浮动!

--编辑--- 根据要求,这里是我的 xaml 的相关部分。我只包括更短的 tab2,但有几个 tabItem,并且所有行为都相同。

 <!-- +++++++++++++ TAB2 ++++++++++++ -->
  <TabItem Name="tabItem2" HorizontalAlignment="Center" Height="80" IsSelected="false" FontSize="{StaticResource TAB_FONTSIZE}">
    <TabItem.Header>
      <StackPanel>
        <TextBlock Text="&#xF0F7;"/>  <-------------unicode symbol very big!
        <TextBlock Name="tbTab2" Visibility="Hidden" FontSize="{StaticResource BUTTON_FONTSIZE}" />
      </StackPanel>
    </TabItem.Header>
    <TabItem.Background>
      <ImageBrush/>
    </TabItem.Background>
  </TabItem>

工具提示设置为 code-behind

tabItem2.ToolTip = Langs.Word(Langs.eWords.Pallet);

并且它获得了上述 unicode 字符的巨大大小。

感谢您的帮助

这里的问题是你直接在 TabItem 上设置字体大小和工具提示,然后 "inherited" 项目的 header 和内容(字体大小是也 "inherited" 通过他们的工具提示)。因此,为了完成您的要求,您在设置这些属性时需要更加精确,即将它们设置在适当的控件上而不是 TabItem 本身。在您的情况下,以下应该按预期工作。

您只想对 unicode 字符使用大字体,因此仅在显示该字符的控件上设置 FontSize 属性:

<TextBlock Text="&#xF0F7;" FontSize="{StaticResource TAB_FONTSIZE}" />

您希望工具提示仅针对 header 显示,因此应将其设置在 header 上。您可以在 XAML:

中执行此操作
<TabItem.Header>
    <StackPanel ToolTip="My tooltip text">
    ...
    </StackPanel>
</TabItem.Header>

或 code-behind:

var stackPanel = (StackPanel)tabItem2.Header;
stackPanel.ToolTip = "My tooltip text";