65.9K
CodeProject 正在变化。 阅读更多。
Home

为 C# 应用程序启用 Windows XP 可视化样式 UI

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.47/5 (31投票s)

2003 年 11 月 1 日

3分钟阅读

viewsIcon

181602

downloadIcon

2737

为 C# 应用程序启用 Windows XP 可视化样式 UI

  • 下载演示项目 - 9 Kb

      Sample Image - XPStyleUI.jpg

      引言

      本文介绍了为您的 C# 应用程序提供类似 Windows XP 外观的技术。

      背景

      最近,当我使用 Visual Studio .NET 开发我的第一个 C++ 应用程序时,我发现 TreeViewListView 控件看起来有些类似于 Windows XP 上的控件,"+" 和 "-" 的块具有 3D 外观,当我将鼠标悬停在 ListView 的列标题上时,会出现一个黄色的边框;由于 C# 中没有这样的功能,我决定深入研究 C++ 项目,看看是否可以在 C# 中提供这样的 UI,并找到了允许 C# 应用程序获得 XP 样式控件外观的正确信息,令人惊讶的是,实现这一目标的方法非常简单。

      版本

      这适用于 .NET 7.0 和 7.1 以及 Windows XP 操作系统(非 Windows 2000 或 Windows 2003 Server);在 Visual Studio .NET 7.1 中,应用程序对象有一个属性 Application.EnableVisualStyles()

      操作指南

      使用 Visual Studio .NET 向导创建一个“Windows 应用程序”,在显示的窗体上放置以下控件

      • CheckBox
      • RadioButton
      • Button

      现在 **生成解决方案** 并 **启动** 您的应用程序,您将看不到所显示窗口的任何效果。现在打开 **记事本**,在下面的“清单文件内容”部分,仅标记并复制边框内的代码,然后将其粘贴到新打开的记事本文件中,并将其保存为 “您的项目名称”.exe.manifest 文件,保存在 “您的项目”\bin\debug 文件夹中,或者下载演示 zip 文件并将其中的 “WindowsApplication1.exe.manifest” 文件复制到上述文件夹中并重命名;现在 **启动** 您的项目(无需重新生成解决方案),您仍然会发现显示的窗口没有任何效果,请阅读“设置属性”部分以了解更多信息。

      您需要进行复制/粘贴操作,因为文章中只能发布特定类型的文件。

      注意点

      您可以将上述清单文件 “WindowsApplication1.Exe.manifest” 复制/粘贴到与已完成应用程序可执行文件相同的位置,并将文件名重命名为 “您的应用程序名称”.Exe.manifest(不带引号),请记住将此文件与可执行文件一起分发。

      设置属性

      Visual Studio .NET 中的一些控件有一个名为 FlatStyle 的属性,此属性默认设置为“Standard”;您需要将此属性设置为 System,以便这些控件具有 Windows XP 样式外观(“System”表示操作系统负责设置其可视化样式)。下表显示了具有此类属性的控件的名称。


      Control FlatStyle
      Label
      LinkLabel
      Button
      文本框
      MainMenu
      CheckBox
      RadioButton
      BroupBox
      PictureBox
      Panel
      DataGrid
      ListBox
      CheckedListBox
      ComboBox
      ListView
      树视图
      TabControl
      MonthCalendar
      DateTimePicker
      HScrollBar
      VScrollBar
      分割器
      DomainUpDown
      NumericUpDown
      TrackBar
      进度条
      RichTextBox

      FlatStyle 的缺点

      Flatstyle 设置为“System”会阻止这些控件显示 **图像**,这可能是将此属性添加到这些控件的原因;如果您打算在任何这些控件中显示图像,则必须将其设置为“System”以外的其他值。

      清单文件内容

      以下是清单文件 “WindowsApplications1.Exe.manifest” 的内容,此文件是 xml 格式,可以使用记事本或写字板等任何文本编辑器打开和编辑,您可以在此文件中添加您的项目名称,但这不会对应用程序产生任何影响。

      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity 
          version="1.0.0.0" 
          processorArchitecture="X86" 
          name="Microsoft.Windows.SysInfo"
          type="win32" 
      />
      <description>Your app description here</description>
      <dependency>
          <dependentAssembly>
              <assemblyIdentity 
                  type="win32" 
                  name="Microsoft.Windows.Common-Controls" 
                  version="6.0.0.0" 
                  processorArchitecture="X86" 
                  publicKeyToken="6595b64144ccf1df" 
                  language="*" 
              />
          </dependentAssembly>
      </dependency>
      </assembly>
      
      

      注意

      这种为应用程序提供 XP 样式外观的方法不会将信息嵌入到最终应用程序的清单文件中;如果您开发的应用程序是内部使用或提供给您个人认识的客户,这是最好的方法;但是,如果您正在为未知客户开发应用程序,您可以查找 .NET 实用程序 Application Linker (al.exe) 和 Strong Name (sn.exe) 来将有关您产品的信息嵌入到应用程序可执行文件中;这些实用程序通常在 DOS 控制台中运行,并有许多开关需要设置。

      历史

      • 新文章。
    • © . All rights reserved.