我正在以编程方式创建一个椭圆形状,但找不到任何指定其位置的属性。 Lines具有X1,Y1,X2,Y2,但是在椭圆形状上没有中心,位置,X,Y等。我怎样才能做到这一点?

最佳答案

在 Canvas 面板上的任意位置放置形状可能应该在“ Canvas 面板”中完成(请参阅@phoog的响应)。但是,如果将其放置在Grid或其他面板中,则始终可以修改Margin属性以将其放置在所需的位置。

如果您想通过指定中心点而不是椭圆的左上角来做到这一点,则可以这样做:

Ellipse CreateEllipse(double width, double height, double desiredCenterX, double desiredCenterY)
{
    Ellipse ellipse = new Ellipse { Width = width, Height = height };
    double left = desiredCenterX - (width / 2);
    double top  = desiredCenterY - (height/ 2);

    ellipse.Margin = new Thickness(left, top, 0, 0);
    return ellipse;
}

我没有检查它是否完全符合您在编译器中想要的功能,但是希望您能理解。再次,与在非Canvas面板内使用Margin相比,使用Canvas将是首选方法,但是仍然可以使用计算left和top的相同原理:
Canvas.SetLeft(ellipse, desiredCenterX - (width/2))
Canvas.SetTop(ellipse, desiredCenterY - (height/2))

关于c# - 如何在WPF中指定椭圆形状在 Canvas 上的位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5589256/

10-11 20:00