1.通过NuGet安装框架
2.在工具箱中为Metro控件创建一个新选项卡
3.添加对Metro控件和字体的引用
4.使用框架
迄今为止, 还没有很多解决方案可以使用WinForms之类的工具在Windows桌面应用程序中创建动态用户界面。最著名的方法是实现CefSharp, 以便能够使用HTML, CSS和JavaScript设计界面。但是, 不是每个人都可以通过实现CefSharp在他们的项目中使用自定义HTML控件来简单地增加50MB以上的项目大小。对于那些仍然想要实现自定义控件并使它们看起来比默认控件更好的控件, 还有一个很棒的解决方案, 可以不显着增加项目的大小并使用自定义控件。
我们正在谈论MetroFramework, 此UI框架将Windows 8的Modern UI别名Metro UI带到任何.NET Windows Forms应用程序中。该框架添加了Metro样式的组件, 例如:
纽扣
组合框
复选框
单选按钮
切换
标签
链接
面板
滚动条
地铁
进度条
ProgressSpinner
TabControl
轨迹栏
自定义用户控件
上下文菜单
留言框
DateTimePicker
格网
如果你知道如何配置它, 则可以轻松地将元素拖放到表单中, 并添加该库作为参考, 以在你的应用程序中的任何地方使用它。在本文中, 我们将精确地教你这一点。
1.通过NuGet安装框架
首选的安装方式是通过NuGet。通过访问NuGET程序包管理器, 使用Visual Studio安装程序包。在Visual Studio右上方的解决方案资源管理器中右键单击你的项目, 然后在下拉菜单中选择”管理NuGet程序包”:
在紧急窗口中, 转到”浏览”选项卡并搜索Metromodernui, 在列表中选择软件包并将其安装在项目中:
设置完成后, 你将可以使用软件包中包含的动态库。有关此库的更多信息, 请访问Github上的官方存储库。
2.在工具箱中为Metro控件创建一个新选项卡
使用MetroFramework, 你将能够像使用传统控件一样将控件拖放到窗体中。为了进行组织, 我们建议你创建一个自定义的”工具箱”选项卡, 以存储在MetroFramework的专有控件中。右键单击工具箱的空白区域, 然后从下拉菜单中选择添加选项卡, 这将允许你创建一个空白选项卡并提供自定义名称, 在这种情况下, 我们将其命名为Metro Controls:
然后右键单击你创建的自定义标签(地铁控件), 然后从菜单中选择选择项目
在新窗口中, 转到” .NET Framework组件”选项卡, 然后单击”浏览”:
出现文件浏览器后, 你需要导航到WinForms项目的文件夹, 然后在packages文件夹中搜索MetroModernUI文件夹, 然后在lib上, 最后在网络上。在net文件夹中应该有3个.dll文件, 你将只选择MetroFramework.dll文件并单击”打开”。
MetroFramework UI控件
然后将出现一个加载栏, 控件将出现在.NET组件列表中, 最后单击OK:
默认情况下, 将选中所有组件, 但是你可以取消选择不需要的组件。最后, 控件将出现在先前创建的”控件”选项卡中:
你将能够像使用Windows的默认组件一样, 简单地在窗体中拖放所需的控件。
3.添加对Metro控件和字体的引用
通过上一步, 你可以在项目中拖放组件并使用它们, 但是, 如果你决定在其他计算机上部署项目, 则该组件将不起作用, 因为这些组件不存在。因此, 你需要在项目中添加对MetroFramework的DLL文件的引用, 以便能够在任何地方使用它们。
转到Visual Studio右上角的解决方案资源管理器, 右键单击你的项目, 然后单击”添加”菜单, 然后单击”参考”:
在紧急窗口上, 搜索”浏览”选项卡, 然后单击”浏览”按钮。再次如我们先前在步骤2中所做的那样, 在软件包的MetroModern文件夹内搜索net文件夹, 然后选择3个dll文件:
单击添加, 然后在引用管理器窗口中选择确定。然后在你的项目的引用上, 应该出现对DLL文件的3个引用:
现在, 你可以使用此框架执行任何操作!
4.使用框架
尽管大多数功能都以相同的方式工作, 但是如果你想直接从框架中使用代码(例如Alert框), 那么你将需要在类的顶部导入所需的名称空间:
using MetroFramework.Forms;
using MetroFramework;
例如, 你可以在表单中添加带有可视化构建器的按钮, 然后双击它, 并且click事件将以与默认控件相同的方式自动添加。现在, 在单击事件中, 你可以使用以下方法显示”地铁箱”:
MetroMessageBox.Show(this, “Your message here.”, “Title Here”, MessageBoxButtons.OKCancel, MessageBoxIcon.Hand);
它将显示一个带有Metro风格的消息框:
有关更多信息, 我们建议你阅读图书馆作者的官方博客中的文档, 或在此处查看Github的官方存储库。