我有一个WPF应用程序,它有一个变量“x”,它是一个名为“MyClasses.dll”的自定义C#程序集中的类的实例。此变量“x”有一个方法“LaunchForm”,它从另一个程序集“MyForms.dll”启动Windows窗体“Form1”。该窗体作为对话框启动并显示在屏幕上,但当前的Windows XP / Win7主题/皮肤未应用于它。如果从Windows窗体(而不是WPF窗口)启动此“Form1”,则会正确显示。任何想法为什么会这样?有什么提示可以解决这个问题吗?
干杯! 埃德加
我只是再次查看代码,我没有使用这种启动winform的方式进行反射。请求的代码在WPF中:
MyInterface x = new MyClass1(); x.LaunchForm();
MyClasses.dll中的代码:
public class MyClass1():MyInterface { public MyClass1() {} public void LaunchForm() { Form1 Form1Dialog = new Form1(); Form1Dialog.ShowDialog(); } }
如上所述,这将从WPF启动winform,但不会应用任何Windows主题。
答案 0 :(得分:0)
可能你没有适当的清单告诉Windows你与新主题兼容(WPF不需要它)。
上写了这篇文章