我有一个带有图像的包装面板。我正在使用指点设备,可以在屏幕上获得X和Y坐标。我想使用X和Y坐标来选择WrapPanel或List中的特定项目。
<WrapPanel HorizontalAlignment="Center" VerticalAlignment="Top" Grid.Row="1" Name="ImageWrap">
<ContentControl Style="{StaticResource imageContainerStyle}">
<Image Stretch="Uniform" Source="/Images/Texture01.jpg" />
</ContentControl>
<ContentControl Style="{StaticResource imageContainerStyle}">
<Image Stretch="Uniform" Source="/Images/Texture02.jpg" />
</ContentControl>
<ContentControl Style="{StaticResource imageContainerStyle}">
<Image Stretch="Uniform" Source="/Images/Texture03.jpg" />
</ContentControl>
</WrapPanel>
我正在尝试使用的C#代码。但是不起作用
Point mousePosition = new Point(xPosition, yPosition);
Point localPoint = this.ImageWrap.PointToScreen(mousePosition);
请提供建议。
答案 0 :(得分:1)
您可以使用面板的InputHitTest方法。只要您没有设置面板的Background属性,它将返回给定位置的元素(相对于面板的坐标)或null
。
Point screenPosition = new Point(xPosition, yPosition);
Point panelPosition = ImageWrap.PointFromScreen(screenPosition); // not PointToScreen
IInputElement element = ImageWrap.InputHitTest(panelPosition);
if (element is Image)
{
...
}