首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在Vista/Win7中使用XP Visual Style吗?

可以在Vista/Win7中使用XP Visual Style吗?
EN

Stack Overflow用户
提问于 2010-06-09 02:33:32
回答 1查看 1.3K关注 0票数 1

可以在Vista/Win7中使用XP样式吗?如果是,是否可以对单个控件执行此操作。

我知道我可以使用SetWindowTheme()一次关闭一个控件的视觉样式。我知道可以通过移除EnableVisualStyles调用来关闭整个win forms应用程序的视觉样式。

我这样问的原因是因为在应用程序中,这会被用到,一个处于错误状态的控件,它的背景颜色变为红色。当应用程序在Vista/Win7下运行时,这对ComboBoxes不起作用。更改背景颜色只会更改下拉列表,而不会更改实际控件。

我还研究过让BackColor更改组合框的颜色,就像在XP中那样,当视觉样式关闭时,我也没有找到轻松做到这一点的方法。

是的,这在WPF中很容易解决。/cry。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-09 03:50:53

好吧,你已经知道怎么做了。

代码语言:javascript
复制
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

class MyComboBox : ComboBox {
    protected override void OnHandleCreated(EventArgs e) {
        base.OnHandleCreated(e);
        SetWindowTheme(this.Handle, "", "");
    }
    [DllImport("uxtheme.dll")]
    private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);
}

无论你做什么,对于一个习惯于看到她的UI设计开启了视觉样式的用户来说,这看起来很明显。勾选出一个有视力障碍的人,这可能会让你在美国被起诉。Windows窗体已经有一种非常好的方式来指示错误,ErrorProvider就是为此而设计的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3000187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档