vig*_*ity 21
将形状放在屏幕上的任意位置应该可以在Canvas面板中完成(参见@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;
}
Run Code Online (Sandbox Code Playgroud)
我没有检查过这在编译器中完全符合您的要求,但希望您能得到这个想法.同样,使用Canvas是在非Canvas面板中使用Margin的首选方法,但计算left和top的原理仍然适用:
Canvas.SetLeft(ellipse, desiredCenterX - (width/2))
Canvas.SetTop(ellipse, desiredCenterY - (height/2))
Run Code Online (Sandbox Code Playgroud)
pho*_*oog 14
Canvas.Left和Canvas.Top.这些都在"如何绘制椭圆或圆形"的文档中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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49849 次 |
| 最近记录: |