我试图在单击鼠标时绘制一个圆形和一个矩形,所以我得到了鼠标单击的 x 和 y 线。
我在互联网上搜索过,在 C# 中,这只能用 Margin 来完成,没有起源或类似 java 的东西,你可以给构造函数 x 和 y。
现在我正在尝试正确设置它,但我无法弄清楚如何正确计算它:
据此:
http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.margin%28v=vs.95%29.aspx
rec.Margin = new Thickness(0, 0,0, 0);
有人可以帮助我吗?还是这是不可能的?
这是 WPF 还是 Windows 窗体?WPF 鼠标事件参数具有一个GetPosition(UIElement)
方法,该方法将告诉您相对于传入的控件的鼠标坐标。因此,如果您尝试在名为 MyCanvas
的System.Windows.Controls.Canvas
上绘制矩形,则可以使用 e.GetPosition(MyCanvas)
返回的Point
来放置矩形。
下面是一个示例:
void MyCanvas_MouseDown(object sender, MouseButtonEventArgs e)
{
Point ClickPoint = e.GetPosition(MyCanvas);
Rectangle Rectangle = new Rectangle();
System.Windows.Controls.Canvas.SetTop(Rectangle, ClickPoint.Y)
System.Windows.Controls.Canvas.SetLeft(Rectangle, ClickPoint.X)
MyCanvas.Children.Add(Rectangle);
}
void MyCanvas_MouseDown(object sender, MouseButtonEventArgs e)
{
Point ClickPoint = e.GetPosition(MyCanvas);
Rectangle Rectangle = new Rectangle();
System.Windows.Controls.Canvas.SetTop(Rectangle, ClickPoint.Y)
System.Windows.Controls.Canvas.SetLeft(Rectangle, ClickPoint.X)
MyCanvas.Children.Add(Rectangle);
}
感谢斯宾塞。