Переопределить шаблон ComboBox без темы - PullRequest
4 голосов
/ 14 сентября 2011

Я добавил ComboBox по умолчанию ControlTemplate (скопированный из Blend) к ResourceDictionary из UserControl, чтобы я мог переопределить ComboBox ControlTemplate. Когда я добавил ControlTemplate, мне пришлось добавить следующее пространство имен xml:

xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" 

В шаблоне по умолчанию comboBox есть три ссылки на объекты, которые определены в теме PresentationFramework

<Microsoft_Windows_Themes:ButtonChrome ... >
<Microsoft_Windows_Themes:SystemDropShadowChrome ... > 
<Microsoft_Windows_Themes:ListBoxChrome ... > 

Есть ли способ удалить эти классы, но разрешить системной теме добавлять их во время выполнения (как это обычно делается)? Поэтому нам не нужно иметь жестко закодированную тему в этом пользовательском элементе управления.

Редактировать: Я понимаю, что это не обертки. Однако они являются указателями на тему. Как динамически выбрать тему, используя только заполнитель во время компиляции?

1 Ответ

0 голосов
/ 21 сентября 2011

Вы не можете удалить пространство имен 'mwt', если используете один из этих классов в своем шаблоне.Компилятор будет жаловаться во время компиляции.Хотя сборка называется темой Aero, я думаю, что вы можете без проблем использовать эти классы в Windows XP.Это не оболочка для элементов управления Aero, а реализация WPF внешнего вида элементов управления Windows Vista / 7.

...