如何在WinForms应用程序中使用带有C#的Material Design控件

本文概述

  • 1.通过NuGet安装MaterialSkin
  • 2.将Material控件添加到控件工具箱
  • 3.设置Material样式
  • 4.例子
每个人都喜欢Material Design, 这是一种全面的设计, 可作为跨平台和设备的视觉, 运动和交互设计的指南。尽管” Material Design” 是Android操作系统和其他Google产品专门使用的设计, 但你仍可以根据需要和在任何地方使用该设计。
要在WinForms应用程序中使用Material设计, 你可以使用MaterialSkin库根据Google的Material Design Principles将主题添加到.NET WinForms, C#或VB.Net。该库遵循Material Design规范中定义的准则, 并使用相同的组件和功能。
1.通过NuGet安装MaterialSkin 首选的安装方式是通过NuGet。通过访问NuGET程序包管理器, 使用Visual Studio安装程序包。在Visual Studio右上方的解决方案资源管理器中右键单击你的项目, 然后在下拉菜单中选择” 管理NuGet程序包” :
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
在紧急窗口中, 转到” 浏览” 选项卡并搜索MaterialSkin, 在列表中选择包(已更新最新版本, 即MaterialSkin)并将其安装在你的项目中:
注意 根据你使用的.NET Framework版本, 你将需要下载特定版本的插件。例如, MaterialSking.Updated包至少需要.NET Framework 4.6.2。
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
【如何在WinForms应用程序中使用带有C#的Material Design控件】软件包的安装完成后, 你将可以在项目中使用Material Design。请访问Github上的官方存储库, 以获取有关此库的更多信息。
2.将Material控件添加到控件工具箱 使用MaterialSking, 你将能够像使用传统控件一样将控件拖放到窗体中。为了进行组织, 我们建议你创建一个自定义的” 工具箱” 选项卡, 以存储在该库的专有控件中。右键单击工具箱的空白区域, 然后从下拉菜单中选择添加选项卡, 这将允许你创建一个空白选项卡并提供自定义名称, 在这种情况下, 我们将其命名为Material Controls:
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
然后右键单击你创建的自定义标签(地铁控件), 然后从菜单中选择选择项目:
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
在新窗口中, 转到” .NET Framework组件” 选项卡, 然后单击” 浏览” :
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
出现文件浏览器后, 你需要导航到WinForms项目的文件夹, 然后在packages文件夹内搜索MaterialSking文件夹, 然后在lib上。在lib文件夹中应该有一个dll文件, 单击打开选择它:
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
然后将出现一个加载栏, 控件将出现在.NET组件列表中, 最后单击OK:
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
默认情况下, 将选中所有组件, 但是你可以取消选择不需要的组件。最后, 控件将出现在先前创建的” 控件” 选项卡中:
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
你将能够像使用Windows的默认组件一样, 简单地在窗体中拖放所需的控件。
3.设置Material样式 直到上一步, 你现在可以像使用.NET的典型控件一样轻松地将元素拖放到窗体中。但是, 如果要为整个表单(不仅是表单内部的元素)提供” Material样式” , 则需要修改表单的代码。
首先导入类顶部的MaterialSkin命名空间:
using MaterialSkin; using MaterialSkin.Controls;

然后, 你将能够更改表单的类型。通常, 表单的声明属于Form类型, 例如Form1:Form类, 但是如果要使用Material Style进行声明, 则需要将Form的类型更改为MaterialForm:
namespace Sandbox { public partial class Form1 : MaterialForm {// ... //// ... //// ... //

现在, 在你的类的构造函数中, 在本例中为Form1中, 在InitializeComponent函数下, 添加一些代码以使用” Material外观” 而不是默认外观并更改表单的调色板:
public Form1() { InitializeComponent(); // Create a material theme manager and add the form to manage (this) MaterialSkinManager materialSkinManager = MaterialSkinManager.Instance; materialSkinManager.AddFormToManage(this); materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT; // Configure color schema materialSkinManager.ColorScheme = new ColorScheme( Primary.Blue400, Primary.Blue500, Primary.Blue500, Accent.LightBlue200, TextShade.WHITE ); }

如你所见, WinForms的自定义控件的实现非常简单。保存更改并运行表单以查看会发生什么!
4.例子 下面的示例演示如何在一个简单的WinForms项目的主窗体上创建” Material样式” 窗体:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; // Import the Material Skin using MaterialSkin; using MaterialSkin.Controls; namespace Sandbox { public partial class Form1 : MaterialForm { public Form1() { InitializeComponent(); // Create a material theme manager and add the form to manage (this) MaterialSkinManager materialSkinManager = MaterialSkinManager.Instance; materialSkinManager.AddFormToManage(this); materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT; // Configure color schema materialSkinManager.ColorScheme = new ColorScheme( Primary.Blue400, Primary.Blue500, Primary.Blue500, Accent.LightBlue200, TextShade.WHITE ); }private void Form1_Load(object sender, EventArgs e) {} } }

先前的代码将生成以下形式:
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
然后, 你可以简单地从步骤2中创建的工具箱中拖放一些控件, 并创建出色的表单:
如何在WinForms应用程序中使用带有C#的Material Design控件

文章图片
有关更多信息或阅读该库的文档, 我们建议你在此处访问Github上的官方存储库。尽管此项目不再处于积极的开发中, 但它做得很好, 并且包含许多有用的组件, 因此仍然值得欢迎。此外, 如果你打开问题, 社区可能仍然会有所帮助。
编码愉快!

    推荐阅读