2016-05-10 3 views
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; 

так что вам понадобится список или массив ваших элементов и зациклитесь на этом.

+0

это замечательно - спасибо! – BrianLo

Смежные вопросы