Повторное использование встроенных стилей WPF

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

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

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

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

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

Спасибо!


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


person Luke Quinane    schedule 07.03.2009    source источник


Ответы (2)


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

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

person Sergey Aldoukhov    schedule 07.03.2009

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

person Christian Hubmann    schedule 12.03.2009