![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
aush |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.6.2007 Репутация: нет Всего: нет |
Я читал о том, как работает компоновка: родитель запрашивает желамый размер у детей и вычисляет, сколько надо места ему. Но в этой ситуации я не понимаю, как реализовывать такой вариант, например:
Грид, размер которого меняется. В нем другой грид высотой в половину высоты второго. Во внутреннем гриде эллипс. Т.е. тут надо, чтобы сначала верхний грид занял все доступное место, чтобы внутрений грид мог забиндиться на его ActualHeight, установить свою высоту и дать эллипсу занять все доступное место. Через код эту проблему можно решить, но как правильно это делать через xaml (ведь это чисто декларативная задача и должна решаться соответствующим интрументом)? |
|||
|
||||
SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: нет Всего: 8 |
Это достаточно сложный вопрос для того чтобы его раскрыть в одной теме на форуме.
Важно понять что елемент в XAML это не просто кусок декларативной разметки, это прежде всего класс WPF который наследует от класса FrameworkElement или классов наследующих от него, достаточно сложную структуру. Прочем в таком вопросе как вы задали играют большую роль свойства зависимостей которые имеют достаточно сложный механизм уведомлений и другие особенности. Упрощенно говоря события инициализации окна происходят снизу вверх, тоесть вложенные элементы инициализируются раньше своих контейнеров. После инициализации элемента он размещается в контейнере, обвешивается стилями, привязуется к данным. После события инициализации окна наступает новый этап, событие Loaded движется как бы в обратном направлении, от окна вниз к вложеным элементам. Когда событие достигнет самых нижних элементов, окно становится видимым. На остнове таких вещей WPF и проводит расчеты, а декларативная сторона XAML это только облегчение для проектирования. Чтобы разобратся в таких вопросах советую для начала внимательно прочитать допустим соответствующие главы Мэтью Мак-Дональда (причем 3.5 кое где написана подробней 4.0) Это сообщение отредактировал(а) SKrivosein - 12.12.2012, 23:19 |
|||
|
||||
aush |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.6.2007 Репутация: нет Всего: нет |
SKrivosein, Спасибо за ответ.
Мак-Дональда как раз пролистал (и еще пару книжек), но именно детального объяснения со всеми подробностями не нашел, наверное, надо посмотреть повнимательнее. Это сообщение отредактировал(а) aush - 12.12.2012, 23:52 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |