Каждый элемент управления в WPF имеет стиль по умолчанию, который обеспечивает, помимо прочего, элемент управления по умолчанию ControlTemplate
. WPF ищет стиль по умолчанию в специальном словаре ресурсов в папке Темы в той же сборке, что и элемент управления. Ключ для стиля по умолчанию предоставляется свойством зависимости Control.DefaultStyleKey
, значение по умолчанию которого переопределяется в каждом подклассе Control.
Название словаря ресурсов зависит от текущей темы Windows, например, в Vista с использованием темы Aero словарь называется Aero.NormalColor.xaml, в XP с использованием темы по умолчанию это Luna.NormalColor.xaml. Если стиль не найден в словаре тем, он ищет в Generic.xaml, т. Е. Элементы управления, внешний вид которых не зависит от темы.
Это относится только к любым пользовательским элементам управления, которые вы определили, то есть классам, полученным из элемента управления, прямо или косвенно. Вы можете изменить стиль по умолчанию для стандартного элемента управления, наследуя его и вызывая DefaultStyleKeyProperty.OverrideMetadata
в статическом конструкторе, но затем вам нужно предоставить полный стиль, включая ControlTemplate.
Обратите внимание, что вы можете указать WPF искать во внешней сборке ваш стиль по умолчанию, используя атрибут ThemeInfo. Внешняя сборка должна иметь имя <
YourAssembly >
. <
ThemeName >
.dll, например. PresententationFramework.Aero.dll.