当我点击鼠标时,我正在尝试画一个圆圈和一个矩形,所以我得到了鼠标点击的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);
有人能帮助我吗?或者这不可能吗?
答案 0 :(得分:1)
这是WPF还是Windows Forms? WPF鼠标事件args有一个GetPosition(UIElement)
方法,它会告诉你相对于你传入的控件的鼠标坐标。所以如果你试图在名为System.Windows.Controls.Canvas
的{{1}}上绘制一个矩形您可以使用MyCanvas
返回的Point
放置矩形。
以下是一个例子:
e.GetPosition(MyCanvas)
答案 1 :(得分:0)
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);
}
感谢斯宾塞。