0

单击鼠标时,我正在尝试绘制一个圆形和一个矩形,因此我得到了鼠标单击的 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);

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

4

2 回答 2

1

这是 WPF 还是 Windows 窗体?WPF 鼠标事件参数有一个GetPosition(UIElement)方法可以告诉您相对于您传入的控件的鼠标坐标。因此,如果您尝试在System.Windows.Controls.Canvas被调用对象上绘制矩形,MyCanvas则可以使用Point返回的 bye.GetPosition(MyCanvas)来放置矩形。

这是一个例子:

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);
}
于 2012-11-14T19:54:21.517 回答
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);
}

感谢斯宾塞。

于 2012-11-14T22:03:10.480 回答