有没有办法让 IE 中托管的 Windows 窗体应用程序使用当前操作系统/浏览器的“外观”,类似于在调试器中运行应用程序时的一切外观?例如,我在 VS2008 中调试,它看起来很棒,但是当我在 Vista 或 Win7 上的 IE7 或 IE8 中查看应用程序时,所有控件看起来都像 1996 年左右的 Netscape 导航器。按钮、标签、滚动条、数据网格等,是否有一个通用的设置来改变这个?
我目前正在为.Net 2.0 编译。
谢谢。
有没有办法让 IE 中托管的 Windows 窗体应用程序使用当前操作系统/浏览器的“外观”,类似于在调试器中运行应用程序时的一切外观?例如,我在 VS2008 中调试,它看起来很棒,但是当我在 Vista 或 Win7 上的 IE7 或 IE8 中查看应用程序时,所有控件看起来都像 1996 年左右的 Netscape 导航器。按钮、标签、滚动条、数据网格等,是否有一个通用的设置来改变这个?
我目前正在为.Net 2.0 编译。
谢谢。
当您在调试器中运行应用程序时,它会通过调用 System.Windows.Forms.Application.EnableVisualStyles() 的 Program.cs.Main() 方法。在 IE 中托管时,您是否通过一些不同的入口点进入?一个可能不会调用 System.Windows.Forms.Application.EnableVisualStyles() 的?如果是这样,您可以添加对 EnableVisualStyles() 的调用——只要确保它只被调用一次,否则它会吐给你。将其包装在 Try-Catch 中并吞下任何 System.InvalidOperationException。