Re[2]: Программное позиционирование контролов WPF
От: Аноним  
Дата: 12.04.09 12:10
Оценка:
Здравствуйте, SE, Вы писали:

SE>Здравствуйте, iVoffka, Вы писали:


V>>Всем привет.


V>>WPF начал изучать недавно. Как у пользователя WinForms возник вопрос: есть в WPF какой-нибудь аналог свойства Location у контрола? Т.е. мне нужно программно разместить некоторый контрол на форме с нужными мне координатами. Поясню на примере: я щелкаю мышкой на форме/панели и в этой точке размещается контрол, скажем кнопка. В winForms я мог сделать контрол.Location = "нужные координаты", а как это в WPF сделать — неясно. МакДональдс как-то обошел этот момент стороной в своей книге.


SE>И не зря обошел. В WPF совершенно другая идеология размещения — кому сколько надо, тот столько и занял, а остальные подвинулись и подвинули остальных.

SE>Если фиксировать размещение контролов, то стоит только поменять настройки Windows и такие "прибитые гвоздями" контролы начинают друг на друга наползать.

SE>Но если Вам все же ну просто позарез нужно сделать как Вы написали... Добавьте в окно грид, а уже в него вставляйте контролы, указывая каждому отступ слева и сверху (свойство margin), но не указывая позиции в ячейках грида.


Спасибо за совет. Я понимаю, что там идеология размещения другая. Все дело в том, что мне надо рисовать изображения некоторых объектов. Эти изображения я представил в виде Polygon и Ellipse, а они являются контролами. И размещать их надо строго в координатах той точки, где пользователь ткнул мышкой.

Еще вопрос: я сделал UserControl, поместил объект этого контрола на главную форму и обрабатываю событие MouseDown:

<Window x:class=""....
        xmlns:local="clr-namespace=Namespace;assembly=MyAssembly">

   <local:UserControl MouseDown=handler />
</Window>


Но обработчик не вызывается. Не вызывается он и в случае, если я его определю в самом UserControl. Из-за чего такое возможно?

Большое спасибо за ответы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.