如何在WPF中指定画布上椭圆形状的位置
本文关键字:椭圆形 位置 WPF | 更新日期: 2023-09-27 17:49:31
我以编程方式创建一个椭圆形状,但我找不到任何指定其位置的属性。Lines
有X1, Y1, X2, Y2,但在椭圆形状上没有中心,位置,X, Y等。我该怎么做呢?
在屏幕上的任意位置放置形状可能应该在画布面板中完成(参见@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);
}