0

我有一个带有图像的包装面板。我正在使用指点设备,可以在屏幕上获取 X 和 Y 坐标。我想使用 X 和 Y 坐标来选择 WrapPanel 或列表中的特定项目。

<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);

请给我一些建议。

4

1 回答 1

1

您可以使用面板的InputHitTest方法。它将返回给定位置的元素(相对于面板的坐标),或者null,只要您不设置面板的 Background 属性。

Point screenPosition = new Point(xPosition, yPosition);
Point panelPosition = ImageWrap.PointFromScreen(screenPosition); // not PointToScreen
IInputElement element = ImageWrap.InputHitTest(panelPosition);

if (element is Image)
{
    ...
}
于 2013-11-05T23:41:21.897 回答