在光标所在的位置绘制矩形



我试图在单击鼠标时绘制一个圆形和一个矩形,所以我得到了鼠标单击的 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)方法,该方法将告诉您相对于传入的控件的鼠标坐标。因此,如果您尝试在名为 MyCanvasSystem.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);
}

感谢斯宾塞。

相关内容

  • 没有找到相关文章

最新更新