В настоящее время вы ничего не можете с этим поделать. Приложения WPF имеют свою собственную тему [которая не связана с темой Windows]. Лучшее, что я могу предложить, - это написать приложение или создать свою собственную dll, которая изменит тему WPF на ту, которая вам нравится, вы получите за это большое признание;)
Окна WPF не взаимодействуют с неофициальными темами
Некоторое время назад я решил установить свой патч uxtheme.dll
(используя Universal Theme Patcher ), чтобы разрешить использование неофициальных оконных тем. Проблема в том, что приложения WPF, кажется, игнорируют пользовательскую тему для собственных элементов управления Windows (таких как полосы прокрутки и кнопки) и вместо этого используют классическую тему для них.
Я впервые заметил это с Visual Studio 2010:
Я думал, что это была ошибка в самой программе, но создание моего собственного приложения WPF дает тот же результат:
Погугление показывает, что я не единственный человек с этой проблемой, но я не нашел решения.
Что я могу с этим поделать? Должен ли я попробовать другой uxtheme.dll
патчер? Или это то, что я получаю за попытку [задыхаться] настроить Windows?
4 ответа на вопрос
- Популярные
- Новые
- С комментариями
- Активные
Есть хороший обходной путь для этой проблемы. Следующая процедура скажет WPF использовать тему Windows Vista / 7 вместо Windows Basic (для элементов управления).
Причина, по которой использование новой темы вызывает эти проблемы, заключается в том, что wpf выясняет, какая тема установлена, проверяя имя файла активированного в данный момент визуального стиля. Если имя «aero.msstyles», оно использует тему aero. Если это «luna.msstyles», он идет на один шаг дальше и проверяет текущую цветовую схему для точной настройки цветов (NormalColor, Metallic, Homestead - это цветовые схемы для Windows XP, Windows Vista полностью отбрасывает концепцию цветовой схемы в пользу окна аэро). В wpf также есть встроенная тема для royale.msstyles. Если у файла темы есть имя, которое wpf не распознает, он просто использует базовую тему Windows.
Обходной путь? Переименуйте ваш визуальный стиль из " .msstyles" в "aero.msstyles", затем измените связанные с ним файлы ".theme" в блокноте, чтобы учесть новое имя (обратите внимание, что теперь вы можете применять визуальный стиль только с темой файл). WPF теперь показывает стиль Windows Vista вместо Windows Basic ;-).
Я также задавал этот вопрос некоторое время назад и не мог найти никаких ответов.
https://stackoverflow.com/questions/7495906/visual-studio-2010-classic-system-theme
Единственная тема, которую поддерживает Visual Studio 2010, - это тема по умолчанию. Хотя я заметил, что некоторые темы поддерживают это, но большинство - нет.
Я попробовал все, в основном, запуск VS2010 в качестве администратора, запуск в режиме совместимости, установка / удаление SP1 и т. Д.
Мы должны соблюдать правила Microsoft: P
извините, у меня не было достаточно «точек», чтобы комментировать или уточнить из контекста ответа AlexKven
Просто хотел добавить, для тех, кто заинтересован ...
в *.theme
файле вы должны указать aero.msstyles
в Titlecase. поэтому он должен читать что-то вроде Path=%ResourceDir%\themes\path\to\Aero.msstyles
в противоположность ...\aero.msstyles
.
смотрите также: github.com/riverar/uxstyle
Похожие вопросы
-
12
Почему папка / winsxs становится такой большой и ее можно уменьшить?
-
2
Повышенные привилегии для запуска приложений в Windows?
-
14
PDF Viewer в Windows
-
-
7
Какие службы Windows можно безопасно отключить?
-
8
Firefox PDF плагин для просмотра PDF в браузере на Windows
-
1
Windows теряет макет экрана
-
1
Есть ли способ предотвратить установку / обновление, чтобы засорять мой жесткий диск загадочными пап...
-
1
Как я могу получить доступ к принтеру Windows Vista из Ubuntu по сети?
-
6
Просмотр журнала в Windows
-
3
Фоновая проблема Windows с двумя экранами