Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > WPF и Silverlight > Перемещаемый элемент внутри Adorner'a в WPF |
Автор: Anyone 1.10.2009, 10:48 | ||||
Создал сложный Adorner, который позволит изменять размеры, вращать объект, а также планируется изменять центр вращения с помощью перемещающегося элемента(центр изображен красным цветом на рисунке). Перемещение центра осуществляется с помощью свойства Margin. Из рис. видно что ниже и правее объекта перемещаемый элемент адорнера обрезается. Еще я не могу понять почему если переместить центр адорнера в верхнюю точку объкета, значение Margin.Left, Margin.Top равно приблизительно значению соответственно ActualWidth, ActualHeight объекта, а если его переместить в нижнюю точку объекта, то значение Margin.Left, Margin.Top примерно в 2 раза меньше (видно на рисунке)... Привожу код:
Следует обратить внимание на t:CenterThumb. У меня 2 вопроса: почему адорнер обрезается, причем только справа и снизу объекта, и почему значение Margin так неравномерно изменяется при перемещении адорнера относительно объекта? Спасибо. |
Автор: math64 1.10.2009, 13:29 |
Чтобы не обрезался, нужно задать правый и нижний Margin'ы отрицательными, чтобы весь CenterThumb поместился в отведённую ему ячейку Grid (с учётом размера полей). Когда же область для размещения CenterThumb больше его размеров, он помещается по центру - а поскольку правый и нижний Margin'ы не регулируются, то он смещается толко наполовину. Кстати адорнеры тут не причём - всё разместится также и при использовании обычного элемента. |
Автор: Anyone 1.10.2009, 14:14 | ||
Большое спасибо! |