作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在以编程方式创建椭圆形状,但我找不到任何指定其位置的属性。 Lines
具有 X1、Y1、X2、Y2,但在椭圆形状上没有中心、位置、X、Y 等。我该怎么做?
最佳答案
将形状放在屏幕上的任意位置可能应该在 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/
我是一名优秀的程序员,十分优秀!