出于某种原因,工具提示不会显示在我的子网格中。
<Grid DockPanel.Dock="Top"
Width="300px"
Height="250px"
ToolTipService.ToolTip="MainGrid Tooltip">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="1.25*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
ToolTip="mygrid tooltip 2">
<StackPanel Orientation="Horizontal">
<Image Width="15"
Source="<<INSERT IMAGE FILE LOCATION HERE>>"
ToolTipService.ToolTip="Child Grid Tooltip 1"/>
<TextBlock Width="80"
Text="Random Text 2"
ToolTipService.ToolTip="Child Grid Tooltip 2"/>
<TextBlock Width="80"
Text="Random Text 3"
ToolTipService.ToolTip="Child Grid Tooltip 3"/>
</StackPanel>
</Grid>
我一直在显示“mygrid工具提示2”,即使我已经覆盖了它的孩子的工具提示 - 它也不会显示。
我已经减少了在资源词典中使用控件模板的复杂性,直到我现在只剩下上面的内容,但仍然没有。
任何想法都将受到高度赞赏,也许我可以阅读它的链接。我的WPF书和msdn目前没有产生任何相关的资金。
谢谢,
答案 0 :(得分:11)
为了使WPF中的某些内容能够显示工具提示,必须在命中测试时才能看到它。
在面板的情况下,这是通过将背景颜色设置为null
以外的值来完成的(这是所有面板的默认值)。如果您希望自己的面板不可见但仍有资格进行点击测试,则可以使用Transparent
作为背景颜色。
<Grid Background="Transparent" ToolTip="This Will Be Shown">
<!-- other stuff -->
</Grid>
<Grid ToolTip="This Will NOT Be Shown">
<!-- other stuff -->
</Grid>
答案 1 :(得分:1)
@Isak,谢谢你,Background="Transparent"
协助了我的最终解决方案。
我最终抛弃了定义了行/列的Grid,并使用了嵌套StackPanels的Grid。
以前Grid.Rows正在由ContentControls填充,我将其替换为包含我需要显示的信息的本地Stackpanels,这似乎解决了它,但只有在我将“Transparent”标签添加到stackpanels之后一个
IsHitTestVisible="False"
在父网格中用作背景图像的图像上。
以下是我当前解决方案的一个示例,第二部分取代了原始帖子中的代码。
首先,在获得相关代码之前的基本源文件布局如下所示:
<ResourceDictionary xmlns="...
<DataTemplate DataType="...
<Grid Style="...
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Name="LeftColumn" Grid.Column="0">
<TextBlock Style="{StaticResource TextHeader}"
Text="Review 10 Patients"/>
<Image RenderOptions.BitmapScalingMode="NearestNeighbor"
SnapsToDevicePixels="True"
Stretch="None"
DockPanel.Dock="Top"
IsHitTestVisible="False"
Source="((INSERT IMAGE HERE))" Margin="0,-2,0,10"/>
然后我的解决方案网格如下[替换初始邮政编码]:
<StackPanel>
<StackPanel Background="Transparent" Orientation="Horizontal">
<Image Style="{StaticResource InfoImage}" Margin="3">
<ToolTipService.ToolTip>
<ToolTip Width="200" Style="{StaticResource ToolTip}"
Content="ToolTip 1"/>
</ToolTipService.ToolTip>
</Image>
<TextBlock Width="140" Style="{StaticResource Text_SelfTitle}"
Text="Text Field 1"/>
<TextBlock Width="145" Style="{StaticResource Text_SelfQuestions}"
Text="Text Field 2"/>
</StackPanel>
<StackPanel Background="Transparent" Orientation="Horizontal">
((... similar as above...))
</StackPanel>
<StackPanel Background="Transparent" Orientation="Horizontal">
((... similar as above...))
</StackPanel>
</StackPanel>
</Grid>
</Grid>
希望这有助于其他人体验类似的东西。