【发布时间】:2015-08-29 13:06:36
【问题描述】:
我有以下 XAML(简体):
<Grid>
<Popup Name="Popup" DataContext="{Binding ElementName=GameWheel, Path=SelectedItem}" PlacementTarget="{Binding SelectedItem}" Placement="Center" IsOpen="True">
<Image Source="{Binding ImagePath}" Width="100" />
</Popup>
<DockPanel Margin="40,0">
<ListBox x:Name="GameWheel" ...>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<c:VirtualizingWrapPanel IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image x:Name="GamesWheelImage" ... />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DockPanel>
</Grid>
虽然 DataContext 是正确的并且它在弹出窗口中向我显示了正确的图像,但位置完全错误。我的目的是让弹出窗口覆盖列表框中 SelectedItem 的中心,但由于某种原因,它总是放在窗口的中心。
关于如何在列表框中获取 selectedItem 的位置以使弹出窗口始终覆盖所选项目的中心的任何想法?我得到的最接近的是将图像放置在列表框的中心,但我无法让它仅覆盖所选项目。
【问题讨论】: