2011-12-25 5 views
1

У меня есть определенные прямоугольные пользовательские элементы управления. Как разместить его на определенной координате x-y на холсте? Когда я помещаю пользовательский элемент управления, мне нужно оценить позицию, чтобы поместить следующий элемент управления на основе отображаемой ширины/высоты ранее установленного элемента управления. Как сделать это правильно в Silverlight.Как разместить элемент управления пользователя на холсте?

+0

Можете ли вы привести пример того, что вы сделали и что не сработало? Это поможет нам помочь вам. – katit

+0

Я использовал свойство margin для размещения элементов управления. Я не знаю, как разместить элемент управления w.r.t в позиции и отобразить размер уже установленного элемента управления. – blitzkriegz

+0

Пример будет отличным, но выравнивание элементов управления внутри других может быть легко выполнено с помощью функции HorizontalAlignment и VerticalAlignment – katit

ответ

2

Чтобы установить элементы управления внутри панели холста, вы используете прикрепленные свойства Canvas, Canvas.Left и Canvas.Top. Итак, если вы хотите свой контроль, чтобы расположить на 100,20 (относительно верхнего левого угла холста), вы должны ввести:

<Canvas> 
    <Rectangle Canvas.Left="100" Canvas.Top="20"/> 
</Canvas> 

В качестве альтернативы, вы можете использовать это в коде-за:

yourControl.SetValue(Canvas.LeftProperty,100.0); 
yourControl.SetValue(Canvas.TopProperty,20.0); 

Если у вас есть несколько элементов управления, которые вы пытаетесь организовать динамически, хотя, вы можете рассмотреть вопрос об использовании StackPanel или сетки Intead холста.

+0

Если логика компоновки многоразовая, вы можете подумать о создании настраиваемой панели: http://msdn.microsoft.com/en-us/library/ cc903936% 28v = vs.95% 29.aspx – Mart

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