如何在WPF中指定画布上椭圆形状的位置

本文关键字:椭圆形 位置 WPF | 更新日期: 2023-09-27 17:49:31

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

如何在WPF中指定画布上椭圆形状的位置

在屏幕上的任意位置放置形状可能应该在画布面板中完成(参见@phoog的回应)。但是,如果你把它放在网格或其他面板中,你总是可以修改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面板中使用Canvas将是比使用Margin更可取的方法,但是计算left和top的相同原则仍然适用:

Canvas.SetLeft(ellipse, desiredCenterX - (width/2))
Canvas.SetTop(ellipse, desiredCenterY - (height/2))

画布。左,画布,顶部。这一切都在"如何画一个椭圆或圆"的文档http://msdn.microsoft.com/en-us/library/ms751563.aspx

在c#代码中,语法是这样的:
void CreateCanvasWithEllipse(double desiredLeft, double desiredTop)
{
    Canvas canvas = new Canvas();
    Ellipse ellipse = SomeEllipseConstructionMethod();
    Canvas.SetLeft(ellipse, desiredLeft);
    Canvas.SetTop(ellipse, desiredTop);
}