[英]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.