0

StackPanel誰かがaのツールチップをその子にバインドする方法を教えてもらえますか?

これが私が使用したいくつかのコードです:

<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とのバインディングが機能すると言いたいです。これで、適切なメジャーを持つツールチップができましたが、コンテンツがありません(空白の長方形で埋められただけです)。

誰か助けてくれませんか?:)

参考までに、私が欲しいのは、テキストブロックの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 に答える