Когда я переопределяю стиль / шаблон элемента управления по умолчанию для стандартного элемента управления WPF в наложении с помощью «Редактировать копию» без его изменения (просто создавая локальную копию if), это уже нарушит тематику в некоторых сценариях? Другими словами, предоставляют ли разные темы разные определения шаблона элемента управления и / или стиля для стандартных элементов управления? Как я могу убедиться, что мои стили / шаблоны управления соответствуют тематике?
Не нарушает ли переопределение стилей / шаблонов элементов управления по умолчанию тематику?
Ответы:
Да, это нарушает тематику;
Да, разные темы предоставляют разные стили управления. Если у вас есть MS Blend, вы можете найти их в папке Blend (например, в C: \ Program Files \ Microsoft Expression \ Blend 3 \ SystemThemes \ Wpf)
Чтобы соблюдать тематику, вы также должны создать один стиль для каждой темы для своего элемента управления. Существует много ресурсов по индивидуальному заказу. управление и поддержка тем. Просто упомяну один: WPF: изменение стиля управления в зависимости от системной темы
Как разработчик вы хотите создавать элементы управления с точки зрения их функциональности. Используйте стили управления по умолчанию везде. Тогда позвольте профессионалам заняться графическим дизайном. Если вы переопределите ControlTemplate элемента управления, вы уже заняты темой.
Если вы возитесь с ControlTemplates, старайтесь придерживаться стандартного подхода, иначе, как только графический дизайнер начнет работать над приложением, он будет ругаться на вас :)
Темы - это коллекции стилей, нацеленных на отдельные элементы управления и переопределяющих их внешний вид. Любой элемент управления, для которого вы предоставили ControlTemplate, либо не будет применяться, либо не будет соответствовать пакету тем (в зависимости от того, получаете ли вы доступ к теме по x: Name или по типу)
Однако если вы переопределите DataTemplates, все в порядке. Это можно безопасно делать, не беспокоясь о вмешательстве тем.