有人可以告诉我如何将StackPanel
的工具提示与其子项绑定吗?
以下是我使用的一些代码:
<StackPanel>
... (some UI like grid, textblock, border, ...)
<StackPanel.ToolTip>
<ToolTip Placement="RelativePoint" Padding="0" HasDropShadow="False">
<ItemsControl ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=StackPanel, AncestorLevel=3}, Path=Children}"
Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=StackPanel, AncestorLevel=3}, Path=ActualWidth}"
Height="11">
</ItemsControl>
</ToolTip>
</StackPanel.ToolTip>
<StackPanel>
我首先尝试使用绑定在VisualBrush
上的ToolTip
,但这只显示非隐藏控件,因此当隐藏一个孩子时(对于眼睛不可见,而不是PC)在StackPanel
中,那个孩子在ToolTip
中也是不可见的。
还想说与ActualWidth的绑定有效。现在我有一个具有正确度量的工具提示,但它没有内容(它只是一个填充的空白矩形)。
有人请帮帮我? :)
仅供参考,我想要的就像你用他的工具提示绑定Textblock的Content属性一样。唯一的区别是我想绑定一组对象而不是字符串值。
答案 0 :(得分:0)
在 WPF 中,您应该使用 MVVM ,因为它允许您始终绑定数据,而不是其他控件。您必须将 WPF控件视为数据可视化工具,而不是数据容器。
因此,如果您正在使用MVVM,只需将Tooltip ItemsControl绑定到您的(可观察?)项目集合。
答案 1 :(得分:0)
问题可能是由于ToolTip不是StackPanel的可视化树的一部分。
因此,StackPanel不是ToolTip的祖先 - &gt;因此,为什么RelativeSource绑定不起作用。