Форма Windows, запущенная из окна WPF, не отображает текущую системную тему. Зачем? - PullRequest
0 голосов
/ 07 октября 2010

У меня есть приложение WPF с переменной «x», которая является экземпляром класса из пользовательской сборки C # под названием «MyClasses.dll».Эта переменная "x" имеет метод "LaunchForm", который запускает форму Windows "Form1" из другой сборки "MyForms.dll".Форма запускается в виде диалога и отображается на экране, но текущая тема / оболочка Windows XP / Win7 к ней не применяется.Если эта «Form1» запускается из формы Windows (не из окна WPF), она отображается правильно.Есть идеи, почему это происходит?Любые советы, чтобы решить эту проблему?

Ура всем!Эдгар

Я только что снова посмотрел на код, и я не использую размышления об этом способе запуска winform.Запрошенный код находится в WPF:

MyInterface x = new MyClass1 ();x.LaunchForm ();

Код в MyClasses.dll:

открытый класс MyClass1 (): MyInterface {public MyClass1 () {} public void LaunchForm () {Form1 Form1Dialog = new Form1();Form1Dialog.ShowDialog ();}}

Это, как уже упоминалось, запускает winform из WPF, но к нему не применяется тема Windows.

1 Ответ

0 голосов
/ 07 октября 2010

Возможно, у вас нет соответствующего манифеста, чтобы сообщить Windows, что вы совместимы с новой темой (WPF не нуждается в ней).

Я написал об этом в своем блоге на http://www.nbdtech.com/Blog/archive/2008/06/16/The-Application-Manifest-Needed-for-XP-and-Vista-Style-File.aspx

...