绘制光标所在的矩形

时间:2012-11-14 19:48:53

标签: c# drawrectangle

当我点击鼠标时,我正在尝试画一个圆圈和一个矩形,所以我得到了鼠标点击的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);

有人能帮助我吗?或者这不可能吗?

2 个答案:

答案 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);
}

感谢斯宾塞。