Здравствуйте, ylem, Вы писали:
Y>Подскажите, пожалуйста, что почитать про то, как "правильно" кастомизировать внешний вид контролов? Y>StackOverflow и статьи из MSDN помогают сделать то, что нужно, но, например, попутно оказывается, что добиться одного и того же видимого результата можно массой разных способов, и хотелось бы понимать, как какой из них и в каком случае задуман задумщиками WPF и предпочтителен по причинам, о которых я пока и не догадываюсь. Y>Спасибо.
Была хорошая книжка WPF Controls unleashed.
Что почитать про кастомизацию внешнего вида контролов WPF?
Подскажите, пожалуйста, что почитать про то, как "правильно" кастомизировать внешний вид контролов?
StackOverflow и статьи из MSDN помогают сделать то, что нужно, но, например, попутно оказывается, что добиться одного и того же видимого результата можно массой разных способов, и хотелось бы понимать, как какой из них и в каком случае задуман задумщиками WPF и предпочтителен по причинам, о которых я пока и не догадываюсь.
Спасибо.
Re: Что почитать про кастомизацию внешнего вида контролов WPF?
Здравствуйте, ylem, Вы писали:
Y>Подскажите, пожалуйста, что почитать про то, как "правильно" кастомизировать внешний вид контролов?
А что, есть так много вариантов? Есть либо модификация визуальных пропертей, либо шаблоны. "Правильный" способ — это самый простой, через проперти. А когда ты понимаешь всю криворукость архитектуры контрола, приходится прибегать к шаблонам — никакого выбора тут нет.
WPF — это вообще грустное зрелище, рано или поздно оно сдохнет, так что не насилуйте себя теорией.
Re[2]: Что почитать про кастомизацию внешнего вида контролов WPF?
Здравствуйте, Kolesiki, Вы писали:
K>Здравствуйте, ylem, Вы писали:
Y>>Подскажите, пожалуйста, что почитать про то, как "правильно" кастомизировать внешний вид контролов?
K>либо модификация визуальных пропертей,
Тогда к делу (если Вы не против?)
1. Вижу, как выглядит кнопка. Поменял пару визуальных пропертей, теперь вижу, что она выглядит так, как мне надо.
Пользователь поменял в Винде тему (или как там это сейчас делается?)
Моя кнопка по-прежнему выглядит не так, как может быть хотел бы пользователь, а так же, как когда видел ее я?
2. В VS в дизайнере WPF есть кнопка Edit template -> Edit a copy...
Ею так и задумано пользоваться? Сгенерил xaml-простыню, поменял сколько-то строчек(узлов) -- готов теплэйт для "промышленного применения"?
3. Когда нужны VisualState (VisualStateManager), а когда хватит и свойства триггерами менять?
Если по науке.
3.1. А есть еще свойство FrameworkElement.FocusVisualStyle
(видите, какая у меня "каша в голове" )
Re[3]: Что почитать про кастомизацию внешнего вида контролов WPF?
Здравствуйте, ylem, Вы писали:
Y>1. Вижу, как выглядит кнопка. Поменял пару визуальных пропертей, теперь вижу, что она выглядит так, как мне надо. Y>Пользователь поменял в Винде тему (или как там это сейчас делается?) Y>Моя кнопка по-прежнему выглядит не так, как может быть хотел бы пользователь, а так же, как когда видел ее я?
Значит надо делать стили контрола для каждой визуальной темы отдельно.
Y>2. В VS в дизайнере WPF есть кнопка Edit template -> Edit a copy... Y>Ею так и задумано пользоваться? Сгенерил xaml-простыню, поменял сколько-то строчек(узлов) -- готов теплэйт для "промышленного применения"?
Если требуется, чтобы контрол выглядел одинаково в любой теме.
Y>3. Когда нужны VisualState (VisualStateManager), а когда хватит и свойства триггерами менять?
Визуальные состояния появились позже, больше приспособлены к запуску анимации. Для простых случаев хватит и триггеров.
Y>Если по науке. Y>3.1. А есть еще свойство FrameworkElement.FocusVisualStyle
Оно декорирует контрол когда он находится в фокусе. Во многих случаях это рамочка из прерывистых линий.
Re[2]: Что почитать про кастомизацию внешнего вида контролов WPF?
K>WPF — это вообще грустное зрелище, рано или поздно оно сдохнет, так что не насилуйте себя теорией.
Есть надежда? А что на смену?
Мне жутко не нравится тратить кучу времени на 'художества'. А в WPF без этого никак.
Re[2]: Что почитать про кастомизацию внешнего вида контролов WPF?