0

有人可以告诉我如何将 a 的工具提示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将其绑定在 a 上ToolTip,但这仅显示非隐藏控件,因此当一个子项在 中隐藏(对眼睛不可见,而不对 PC 不可见)时StackPanel,该子项在ToolTip.

还想说与 ActualWidth 的绑定有效。现在我有一个具有正确度量的工具提示,但其中没有内容(它只是一个填充的空白矩形)。

有人请帮助我吗?:)

仅供参考,我想要的就像您使用他的工具提示绑定到 Textblock 的 Content 属性一样。唯一的区别是我想绑定对象集合而不是字符串值。

4

2 回答 2

0

WPF中,您应该使用MVVM,因为它允许您始终绑定到数据,而不是其他控件。您必须将WPF 控件视为数据可视化工具,而不是数据容器。

因此,如果您使用的是 MVVM,只需将 Tooltip ItemsControl 绑定到您的(可观察的?)项目集合。

于 2012-08-23T09:51:18.727 回答
0

问题可能是由于 ToolTip 不是 StackPanel 的可视化树的一部分。

因此 StackPanel 不是 ToolTip 的祖先 -> 因此为什么 RelativeSource 绑定不起作用。

于 2012-08-23T11:11:21.250 回答