如何解决C#WPF工具提示未显示在子网格上
| 由于某种原因,工具提示不会显示在我的子网格中。<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目前无法产生任何实质性的效果。
谢谢,
解决方法
为了使WPF中的某些内容能够显示工具提示,必须在进行测试时可见。
对于面板,这是通过将背景色设置为
null
(这是所有面板的默认设置)以外的颜色来完成的。如果希望面板不可见,但仍可以进行点击测试,则可以使用Transparent
作为背景色。
<Grid Background=\"Transparent\" ToolTip=\"This Will Be Shown\">
<!-- other stuff -->
</Grid>
<Grid ToolTip=\"This Will NOT Be Shown\">
<!-- other stuff -->
</Grid>
,@Isak,谢谢,您的Background=\"Transparent\"
帮助了我最终的解决方案。
我最终放弃了具有定义的行/列的Grid,并求助于具有嵌套StackPanels的Grid。
以前Grid.Rows是由ContentControls填充的,我用包含我需要显示的信息的本地Stackpanels代替了它,似乎已经解决了它,但是只有在我向堆栈面板添加\“ Transparent \”标记以及
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,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>
希望这对您有所帮助的其他人有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。