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=""/> <-------------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="" 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";
我有一个 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=""/> <-------------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="" 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";