Material Skin for .Net WinForms
TODO: 本文由 赤石俊哉 翻译整理,您可以随意用于学习交流使用,转载之前请注明出处。
参考
GitHub - IgnaceMaes/MaterialSkin: Theming .NET WinForms, C# or VB.NET, to Google’s Material Design Principles.
以上参考文档为官方Readme文档。
当前(本文中的时间均以2016年7月23日为准),MaterialSkin的组件情况
Supported | Dark & Light version | Disabled mode | Animated |
---|---|---|---|
Checkbox | Yes | Yes | Yes |
Divider | Yes | Yes | N/A |
Flat Button | Yes | Yes | Yes |
Label | Yes | Yes | N/A |
Radio Button | Yes | Yes | Yes |
Raised Button | Yes | Yes | Yes |
Single-line text field | Yes | Yes | No |
TabControl | Yes | N/A | N/A |
ContextMenuStrip | Yes | Yes | Yes |
ListView | Yes | Yes | No |
ProgressBar | Yes | Yes | No |
FloatingActionButton | No | No | No |
Dialogs | No | No | No |
Switch | No | No | No |
More… | No | No | No |
如何在你的程序中实现MaterialSkin
1.向你的工程中添加库
你可以用很多种方法来做这一步,最简单的方法就是添加一个NuGet包。右键点击你的工程,然后点击「管理NuGet程序包…」。搜索「MaterialSkin」然后点击安装。只要安装好了,库就会包含在在你的工程引用中。
当然你也可以通过程序包管理器控制台安装:PM> Install-Package MaterialSkin
另外一个方法就是从GitHub上克隆这个工程,然后自己编译这个库然后添加到自己的工程的引用中。
2.将MaterialSkin控件添加到你的工具栏中
如果你是通过NuGet来安装的,那么MaterialSkin.dll
这个文件就会在//bin/Debug
文件夹中。
你只需要将这个MaterialSkin.dll
文件拖到你的IDE的工具栏上,所有的控件都会被添加到工具栏上。
3.继承MaterialForm
打开你想要添加皮肤的窗体的后端代码,让它继承MaterialForm,代替继承Form。
别忘了在using
中添加库,它才能找到MaterialForm
类!
C#(Form1.cs)
public partical class Form1 : MaterialForm
VB.NET(Form1.Designer.vb)
Partial Class Form1
Inherits MaterialSkin.Controls.MaterialForm
4.初始化你的配色方案
设置你喜欢的颜色和主题。也同时将窗体添加到管理器以便它可以在之后更新窗体的配色方案和主题的变化。
C#(Form1.cs)
public Form1()
{
InitializeComponent();
var materialSkinManager = MaterialSkinManager.Instance;
materialSkinManager.AddFormToManage(this);
materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT;
materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE);
}
VB.NET(Form1.vb)
Imports MaterialSkin
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim SkinManager As MaterialSkinManager = MaterialSkinManager.Instance
SkinManager.AddFormToManage(Me)
SkinManager.Theme = MaterialSkinManager.Themes.LIGHT
SkinManager.ColorScheme = New ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE)
End Sub
End Class
在WPF中使用Material Design
如果你喜欢.NET和MD,你当然得去看看ButchersBoy的Material Design Xaml Toolkit(英文)。
它是在WPF中使用的一个比较相近的工程。
示例图片