TabControl的TabItems上的工具提示不仅在TabItem的标题上产生,而且还在任何未明确设置其自己的工具提示的TabItem内容上产生。
这是一个重现问题的例子:
<Window x:Class="TestToolTipsOnTabControl.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<Grid>
<TabControl>
<TabItem Header="Tab1"
ToolTip="Tooltip of tab1">
<StackPanel>
<TextBlock Text="Content of tab1 with its own tooltip"
ToolTip="Tooltip on content of tab1"/>
<TextBlock Text="more content of tab1" />
</StackPanel>
</TabItem>
<TabItem Header="Tab2"
ToolTipService.ToolTip="Tooltip of tab2">
<StackPanel>
<TextBlock Text="Content of tab2 with its own tooltip"
ToolTipService.ToolTip="Tooltip on content of tab2"/>
<TextBlock Text="more content of tab2" />
</StackPanel>
</TabItem>
<TabItem Header="Tab3">
<StackPanel>
<TextBlock Text="Content of tab3" />
<TextBlock Text="more content of tab3" />
</StackPanel>
</TabItem>
</TabControl>
</Grid>
</Window>
将鼠标指针移到“tab1的更多内容”文本上方,将显示我想要 显示在TabItem标题上的工具提示。
有没有办法让ToolTip只显示在TabItem标题上,但是没有其他地方?
答案 0 :(得分:8)
有没有办法让ToolTip只显示在TabItem标题上,但是没有其他地方?
您应该只将Tooltip
应用于Header
而不是整个TabItem
,因此请将其更改为:
<TabItem>
<TabItem.Header>
<TextBlock Text="Tab1"
ToolTip="Tooltip of tab1"/>
</TabItem.Header>
<StackPanel>
<TextBlock Text="Content of tab1 with its own tooltip"
ToolTip="Tooltip on content of tab1"/>
<TextBlock Text="more content of tab1" />
</StackPanel>
</TabItem>
答案 1 :(得分:1)
将以下代码添加到文本块
ToolTip =“”,ToolTipSevice.ShowDuration =“0”
答案 2 :(得分:0)
作为替代方案,我可以提供:为Style
创建ToolTip
,其中Width
和Height
为<Style x:Key="NullToolTip" TargetType="{x:Type ToolTip}">
<Setter Property="Width" Value="0" />
<Setter Property="Height" Value="0" />
<Setter Property="Content" Value="{x:Null}" />
</Style>
:
ToolTip
使用此Style
创建Resources
并放入<ToolTip x:Key="NoToolTip" Style="{StaticResource NullToolTip}" />
:
ToolTip
并分配给想要关闭<TabItem Header="Tab1" ToolTip="Tooltip of tab1">
<StackPanel>
<TextBlock Text="Content of tab1 with its own tooltip" ToolTip="Tooltip on content of tab1"/>
<TextBlock Text="more content of tab1" ToolTipService.ToolTip="{StaticResource NoToolTip}" />
</StackPanel>
</TabItem>
的控件:
ToolTip
注意:对TreeViewItem
使用ToolTip
时会出现类似问题。他的孩子继承了父母{{1}}。
答案 3 :(得分:0)
以防万一有人在动态创建标签时遇到此问题,以下代码实现了神奇:
<input type="text" name="userName" id="userName">
<button name="contiueButton" id="contiueButton"> Continue </button>
所以这里的关键是将工具提示添加到选项卡标题,但不添加到选项卡元素(将其添加到标题意味着只有当鼠标悬停在选项卡上时才会显示工具提示)。
答案 4 :(得分:0)
这在我动态添加tabItem时适用于我:
TabItem nt = new TabItem
string _newTabItemText = "xxxx" // Dynamic header text
string _newTabItemTooltip = "xxxx Tooltip" // Dynamic tooltip text
string _newTabItemName = "xxxx" // tabItem name to reference the tab item in code ie XAML x:name = "xxxx"
{
Header = new TextBlock() { Text = _newTabItemText, ToolTip = _newTabItemTooltip },
Name = _newTabItemName,
Width = 108
};