Справка: Изменить манифест приложения WPF?
Я отправил комментарий в Microsoft, что в диалоговых окнах в WPF не включен VisualStyle.
Джо Кастро разместил там обходной путь, которого я не очень понимаю, как добиться, кто-нибудь может помочь?
Вот он ответ:
Из соображений совместимости приложений приложения по умолчанию не используют v6 общих элементов управления системы (доступно с XP). На самом деле это не относится к WPF, но вы также видите это только в нескольких ситуациях, когда используете собственные элементы управления, так что это не так распространено, как WinForms, где их API просто оборачивают стандартные элементы управления.
Чтобы исправить это в WPF, вам нужно явно включить v6 comctl32, указав его в манифесте вашего exe-файла. Это должно быть сделано в exe, поэтому WPF не может сделать это как часть своих DLL. EnableVisualStyles делает это во время выполнения, но этот способ обычно лучше.
Например, что-то вроде:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<description>MyExe.exe</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"/>
</dependentAssembly>
</dependency>
</assembly>
2 ответа
Я написал об этом в своем блоге некоторое время назад:
Эти посты описывают проблему и решение: http://www.nbdtech.com/blog/archive/2008/05/28/Why-am-I-Getting-Old-Style-File-Dialogs-and-Message.aspx, http://www.nbdtech.com/blog/archive/2008/06/08/Will-Setting-a-Manifest-Solve-My-WPF-Message-Box-Style.aspx
Этот пост - то, что вы ищете: http://www.nbdtech.com/blog/archive/2008/06/16/The-Application-Manifest-Needed-for-XP-and-Vista-Style-File.aspx
И это говорит о том, как получить стиль Vista для диалогов открытия и сохранения файлов: http://www.nbdtech.com/blog/archive/2008/07/15/Vista-style-open-and-save-dialogs-with-WPF-without-using.aspx
В Visual Basic свойства проекта структурированы немного по-другому. Если вы нашли этот вопрос и находитесь на VB в VS2010, следуйте этим инструкциям для создания файла app.manifest.
- Чтобы создать файл app.manifest, перейдите в свой проект и выберите свойства. Затем нажмите " Просмотр параметров окна" на вкладке " Приложение ".
- Это должно сгенерировать и открыть файл app.manifest, который сохраняется в папке " Мои проекты".
Дополнительная литература: стиль окна WPF MessageBox