如何设置“外观和感觉”? IE 中托管的 winform 应用程序的“aero” 控件风格?
有没有办法让 IE 中托管的 Windows 窗体应用程序使用当前操作系统/浏览器的“外观和感觉”,类似于应用程序在调试器中运行时所有内容的外观? 例如,我在 VS2008 中进行调试,它看起来很棒,但是当我在 Vista 或 Win7 上的 IE7 或 IE8 中查看应用程序时,所有控件看起来都像 1996 年左右的 Netscape navigator。按钮、标签、滚动条、数据网格等,是否有通用的设置来改变这个?
我目前正在为.Net 2.0 进行编译。
谢谢。
Is there a way to have a windows form app hosted in IE use the 'look-and-feel' of the current OS/browser, similar to how everything looks when the app is run in the debugger? For instance I'm debugging in VS2008 and it looks great, but when I view the app in IE7 or IE8 on Vista or Win7 all the controls look like Netscape navigator circa 1996. Buttons, labels, scrollbars, datagrids etc, is there a general setting to change this?
I'm currently compiling for .Net 2.0.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您在调试器中运行应用程序时,它会通过调用 System.Windows.Forms.Application.EnableVisualStyles() 的 Program.cs.Main() 方法。 在 IE 中托管时,您是否通过其他入口点进入? 也许不会调用 System.Windows.Forms.Application.EnableVisualStyles() 吗? 如果是这样,您可以添加对 EnableVisualStyles() 的调用——只需确保它只被调用一次,否则它会让您感到恶心。 将其包装在 Try-Catch 中并吞掉任何 System.InvalidOperationException。
When you run the app in the debugger, it goes through your Program.cs.Main() method which call System.Windows.Forms.Application.EnableVisualStyles(). Are you coming in via some different entry point when hosting in IE? One that would not call System.Windows.Forms.Application.EnableVisualStyles() perhaps? If so, you can add the call to EnableVisualStyles()--just make sure it's only called once or it will puke on you. Wrap it in a Try-Catch and gulp any System.InvalidOperationException.