Я хочу изменить шаблоны управления по умолчанию для моего проекта.Для моего первого изменения я просто хочу установить имя детали для ScrollViewer списка в каждой теме.
Вот моя структура: MyControlLibrary: определяет пару элементов управления и определяет темы для стандартных элементов управления wpf.MyApplication: использует библиотеку элементов управления и включенные темы.
Вот что я понял до сих пор.Загрузите темы по умолчанию: http://archive.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=wpfsamples&DownloadId=7812
Добавлены загруженные темы в папку «Темы» в MyControlLibrary, добавлены необходимые ссылки и изменено пространство имен темы xmlns: для ссылки на сборку.Я не понял, что делать дальше.Если просто переопределить шаблон, это не слишком сложно, но я хочу, чтобы приложение все еще поддерживало тему.
Заранее спасибо
РЕДАКТИРОВАТЬ: Хорошо, я нашелрешение для этого.Я надеюсь, что это поможет кому-то еще.
Обновите ваш App.xaml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="{ThemeDictionary AssemblyName=AssemblyWithThemes}"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<!-- other styles go here -->
</Application.Resources>
, где AssemblyWithThemes - это название сборки, в которой находится папка Themes \ с файлами тем.Я считаю, что на сборку нужно ссылаться и из вашего приложения.
Очень важно, если вы добавляете дополнительные ресурсы непосредственно в файл App.xaml, размещайте их там, где находится комментарий, в противном случае содержащийся ResourceDictionary становится другим ресурсом.вместо установки свойства Application.Resources.
Затем все дополнительные стили должны указывать атрибут BasedOn для сохранения изменений темы.Для динамически создаваемых окон я использовал новый стиль (тип), и он предотвращал использование переопределенной темы.После перехода на новый стиль (тип, стиль) он работал отлично.