对齐椭圆边框上的元素

时间:2016-05-10 09:47:16

标签: c# wpf xaml

我有一个带有对象的画布(产品图片,例如一个苹果),我希望元素围绕它们(图标,例如关于allegenes的警告)。

我试图添加一个Ellipse,现在我想对齐Ellipse边框上的图标。那可能吗?希望你能帮忙 - 非常感谢!

1 个答案:

答案 0 :(得分:0)

你不需要椭圆,你只需要自己做数学。

您知道要订购多少元素,因此您使用三角函数计算位置,然后使用以下位置设置位置:

element.SetValue(Canvas.TopProperty, pos.Y);
element.SetValue(Canvas.LeftProperty, pos.X);

要计算位置,首先计算圆中每个物体之间的角度。

double radius = 100; // Or what ever your radius is
double angle = 360.0 / numItems * Math.PI / 180.0;
var centre = //position of product image

pos.X = centre.X +  Math.Cos(angle * itemNumber) * radius;
pos.Y = centre.Y +  Math.Sin(angle * itemNumber) * radius;

所以你需要一个元素的列表或数组并循环遍历它。