Повторное использование встроенных стилей WPF - PullRequest
2 голосов
/ 07 марта 2009

Как получить доступ к встроенным стилям / шаблонам WPF?

Например, я пытаюсь переместить хром NavigationWindow в нижнюю часть окна. Я видел пример шаблона Microsoft NavigationWindow , но он довольно многословен и не использует навигационный хром по умолчанию.

Я также пытался посмотреть на дерево внутри Снупа. Весь хром содержится внутри элемента сетки под названием «NavChrome», но я могу найти любую ссылку на него. Кажется, что нет ни одного "PART_xyz", который соответствует этому.

Для CTP некоторые люди упоминают об использовании «PFThemeNavigationWindowNavigationButtonForwardButtonStyle» и т. Д. Для стилей кнопок, однако, похоже, это больше не работает.

Итак, возможно ли получить доступ к этим встроенным стилям? Было бы неплохо использовать их и в других местах!

Спасибо!


Редактировать: saldoukhov ответ очень полезен, но есть ли способ сделать это без необходимости копировать весь этот XAML? Это просто не похоже на очень СУХОЙ подход ко мне.

Ответы [ 2 ]

5 голосов
/ 08 марта 2009

Я обычно делаю это в Expression Blend. Выберите элемент управления-> щелкните правой кнопкой мыши-> Изменить элементы управления (шаблон) -> Изменить копию ...

Тогда это зависит от того, что вы хотите сделать. Если вам повезло, и шаблон, который вы редактируете, содержит ссылку на ключевые ресурсы, изменяя которые вы можете получить желаемый эффект, тогда вы можете просто создать свои собственные ресурсы с этим ключом, и они «переопределят» те, что в шаблоне. В этом случае вам не нужно носить с собой полный шаблон. Но чаще всего вам нужно изменить несколько вещей вокруг шаблона, поэтому вы просто извлекаете его в свои собственные ресурсы и начинаете носить с собой.

3 голосов
/ 12 марта 2009

Не ответ на ваш вопрос, но небольшая подсказка: В дополнение к ответу Салдоухова, вы также можете использовать XamlPadX (http://blogs.msdn.com/llobo), чтобы получить доступ к встроенным стилям, если у вас нет Expression Blend.

...