Windows窗体应用程序 - 视觉样式?

时间:2011-11-23 15:11:05

标签: c# visual-studio-2010

我会尽量保持这一点。

在Windows窗体应用程序中创建的按钮如下所示:

enter image description here

如果我手动创建表单,我创建的按钮将如下所示:

enter image description here

我彻底浏览了Windows窗体应用程序,发现没有任何代码可以改变按钮的视觉风格。

有没有简单的解释为什么会发生这种情况?

提前致谢。

4 个答案:

答案 0 :(得分:11)

您需要调用EnableVisualStyles方法,该方法在调用Main之前默认在Program类的Application.Run方法中调用(当您创建Windows窗体项目,带有自动生成的代码。)

  

此方法为应用程序启用视觉样式。视觉风格   是形成的颜色,字体和其他视觉元素   操作系统主题。如果是,控件将使用视觉样式绘制   控制和操作系统支持它。要产生效果,   在创建任何控件之前必须调用EnableVisualStyles()   应用程序;通常,EnableVisualStyles()是第一行   主要功能。启用时不需要单独的清单   调用EnableVisualStyles()时的视觉样式。

答案 1 :(得分:2)

确保将UseVisualStyleBackColor按钮设置为true,并在启动代码中调用Application.EnableVisualStyles();

static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new frmAddress());
    }

}

修改 UseVisualStyleBackColor的效果:

enter image description here

答案 2 :(得分:1)

即使启用了视觉样式(默认设置),按钮的部分显示也由操作系统控制,不受程序控制。使用标准界面在Windows 7上运行的程序与在经典模式下运行时的程序不同。

大胆的重点加在文件的摘录上以说明这一点。

http://msdn.microsoft.com/en-us/library/y6kzhf8d(VS.80).aspx

  

Windows XP为Windows用户带来了全新的外观   界面,具有圆角和更改的控件   将鼠标悬停在它们上方时的颜色。默认情况下,基于Windows   使用Visual Basic创建的应用程序自动支持可视化   样式,也称为Windows XP主题。 在平台上运行时   不支持Windows XP主题,应用程序恢复为   传统的Windows外观。如果你不想要你的   应用程序支持视觉样式,您可以更改属性   Project Designer的Application页面。

同样来自:http://msdn.microsoft.com/en-us/library/ms171733(VS.80).aspx

检查视觉样式支持部分。

以下条件必须为true才能使视觉样式起作用:

  • 操作系统支持视觉样式。
  • 用户已在操作系统中启用了视觉样式。
  • 在应用程序中启用了视觉样式。
  • 视觉样式用于绘制应用程序窗口的客户区域。

答案 3 :(得分:0)

我有类似的问题。直到VS 2010之前,创建自定义清单文件才能完成这项工作。但是,从Visual Studio 2010开始,这不起作用,因为VS在My Project文件夹中创建了一个名为app.manifest的新文件。 因此,要启用视觉样式,您只需要在Visual Studio中编辑此项目,并取消注释下面的行

<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->