繁体   English   中英

在 BitMap 图像上设置坐标 c# WPF

[英]set coordinates on BitMap image in c# WPF

我的 WPF 项目中有一个图形图像,当我单击该图像时,我得到了单击的坐标。 我想更改坐标 (0,0) 出现的位置。

从蓝色圆圈到红色圆圈 - 参见图片

图形

            System.Windows.Point p = e.GetPosition(image);
            double pixelWidth = image.Source.Width;
            double pixelHeight = image.Source.Height;
            double x = pixelWidth * p.X / image.ActualWidth;
            double y = pixelHeight * p.Y / image.ActualHeight;

            xgrid.Text = x.ToString();
            ygrid.Text = y.ToString();

这怎么可能?

谢谢

您可以使用UIElement.TranslatePoint将一个点从一个控件的客户空间转换到另一个控件的客户空间:

private void Rectangle_MouseDown(object sender, MouseButtonEventArgs e)
{
    // assuming "this" is the parent
    var parentPoint = e.GetPosition(this);
    Point childPoint = this.TranslatePoint(parentPoint, theChild);
}

当然,如果您的图表是子控件,那么您可以将其传递给 GetPosition() 而不是将MouseDown处理程序保留在父控件中:

var childPoint = e.GetPosition(theChild); 

无论哪种方式,如果您希望垂直轴反转,则相应地调整 Y 值:

childPoint.Y = theChild.ActualHeight - childPoint.Y - 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM