如何将 Tooltip 的 DataTemplate 绑定到其父级?

How to Bind Tooltip's DataTemplate to its Parent?

我写了下面的代码以在工具提示 window 的 ListBoxItem 的内容中显示图像(预览效果的一种)。但他们根本不工作。

<ListBox>
  <ListBoxItem>
    <Image x:Name="image" Source="image.jpg" Stretch="Uniform">
      <Image.ToolTip>
        <Image Source="{Binding RelativeSource={RelativeSource AncestorType=Image}, Path=Source}" />
      </Image.ToolTip>
    </Image>
  </ListBoxItem>  
<ListBox>  
<ListBox>
  <ListBoxItem>
    <Image x:Name="image" Source="image.jpg" Stretch="Uniform">
      <Image.ToolTip>
        <Image Source="{Binding Source, RelativeSource={RelativeSource TemplatedParent}}" />
      </Image.ToolTip>
    </Image>
  </ListBoxItem>  
<ListBox>  
<ListBox>
  <ListBoxItem>
    <Image x:Name="image" Source="image.jpg" Stretch="Uniform">
      <Image.ToolTip>
        <Image Source="{Binding}" />
      </Image.ToolTip>
    </Image>
  </ListBoxItem>  
<ListBox>  

None 其中有效。

这应该有效:

<ListBox>
    <ListBoxItem>
        <Image x:Name="image" Source="screen.png" Stretch="Uniform">
            <Image.ToolTip>
                <ToolTip>
                    <Image Source="{Binding RelativeSource={RelativeSource AncestorType=ToolTip}, Path=PlacementTarget.Source}" />
                </ToolTip>
            </Image.ToolTip>
        </Image>
    </ListBoxItem>
</ListBox>

Image 不是 ToolTip 的视觉祖先,但您可以使用 ToolTipPlacementTarget 属性 绑定到 Image.