我加载了两个表单,一个是通过新的Windows表单应用程序的传统方式(即Application.Run(new Form1())),另一个是通过AppDomain使用以下代码:
AppDomain dom = AppDomain.CreateDomain("bob", AppDomain.CurrentDomain.Evidence, AppDomain.CurrentDomain.SetupInformation);
dom.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);
Test t = (Test)dom.CreateInstanceAndUnwrap(System.Reflection.Assembly.GetExecutingAssembly().FullName, typeof(Test).FullName);
t.Run();
Test中的代码:
public class Test : MarshalByRefObject
{
public void Run()
{
Form2 f = new Form2();
f.Show();
}
}
我看过网上但找不到窗口中的视觉样式丢失的原因。例如,如果我向每个表单添加一个按钮,则通过AppDomain加载的表单将不具有视觉样式。它会有一个普通的XP之前的感觉。
任何人都可以建议在通过AppDomain加载控件时如何保留视觉样式。请注意,这只是一个测试,前进将用于插件。
答案 0 :(得分:3)
Application.EnableVisualStyles()
适用于 AppDomain 。如果您从其他AppDomain打开表单而未在其中调用 EnableVisualStyles ,则这些表单将不会应用视觉样式。