开源 Material Design WPF UI 控件库,易用且功能强大
前言
Material Design 是由 Google 开发的一套设计指南,提供统一的设计语言,使用户界面更加直观、美观和一致。
Material Design In XAML Toolkit 是一个用于在WPF 程序开发中实现 Material Design 设计语言的开源界面控件库。
项目介绍
MaterialDesignInXamlToolkit 是一个适用于 Windows 桌面的开源 WPF UI 控件库,帮助大家在 C# 和 VB.NET 中轻松实现 Google 的 Material Design 风格用户界面。
该框架提供一组丰富且功能强大的控件、样式和效果,支持全面的 UI 组件,并允许自定义主题颜色、字体等。通过使用 MaterialDesignInXamlToolkit,可以快速开发现代化、美观且用户友好的应用程序。
核心组件
除了包含标准的控件主题外,该套件还包含了一些常用的控件:时钟、对话框、浮动按钮、卡片、齐全图标等。
项目特点
- 适用于 Windows 桌面(WPF)的全面且易用的 Material Design 主题和控件库
- 主要 WPF 框架控件的 Material Design 样式 支持主题的附加控件,包括多动作按钮、卡片、对话框和时钟
- 轻松配置调色板(设计时和运行时均可配置)
- 完整的 Material Design Icons 图标包
- 平滑的过渡效果
- 与 Dragablz 和 MahApps 兼容
- 源项目中包含演示程序
项目使用
使用 Microsoft Visual Studio 2022创建一个 WPF 项目。

1、安装工具包
通过 Visual Studio 的 NuGet 包管理器安装工具包,或使用以下命令:
Install-Package MaterialDesignThemes
2、修改 App.xaml
添加以下代码到 App.xaml文件中:
<Application
x:Class="Example.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- 使用捆绑的主题,设置基础主题为浅色,主色为深紫色,次色为酸橙色 -->
<materialDesign:BundledTheme BaseTheme="Light" PrimaryColor="DeepPurple" SecondaryColor="Lime" /> <!-- 引用 Material Design 2 的默认样式 -->
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesign2.Defaults.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
如果希望使用 Material Design 3,请将上述代码片段中的 ResourceDictionary 行修改为引用 MaterialDesign3.Defaults.xaml:
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesign3.Defaults.xaml" />
3、修改 MainWindow.xaml
在 MainWindow.xaml 中应用 Material Design 样式:
<Button Style="{StaticResource MaterialDesignFlatButton}" Content="Click Me!" />
项目效果
1、首页卡片布局
页面采用卡片式布局,能直观展示数据。

2、支持主题风格切换
该控件库提供多种颜色主题,满足不同场景下的配色需求。
用户可以根据需要轻松切换浅色、深色或自定义主题,确保应用程序在任何环境下都能保持一致且美观的外观。

3、按钮
交互式按钮是界面开发中不可或缺的一部分。
该控件库提供了丰富的按钮样式,如圆形按钮、图标按钮、带进度条的按钮和带有文字提示的按钮等,能够轻松实现类似 Web 的交互效果。

4、输入验证框
表单验证通常在 ViewModel 中编写业务逻辑代码或在 XAML 中使用验证表达式。
该控件库内置了多种验证器,简化了代码实现,并提供了友好的界面提示,类似于移动端的输入和错误提示,提升了用户体验。

5、标签(Chips)
标签(Chips)用于标记和过滤数据。当列表显示的数据较多时,标签可以帮助用户快速筛选和定位所需信息,增强了交互性和便捷性。

6、卡片(Cards)
卡片式布局为数据展示带来了新的活力。
相比传统的列表和表格,卡片形式更加直观和清爽,适合以图片+文字的方式呈现内容,让用户一目了然地获取信息,提升整体体验。

7、图标包(Icon Pack)
该控件库包含成百上千种矢量图标,极大地丰富了开发选项。
图标可用于菜单、按钮等多种场景,方便快捷地美化界面。

8、分组框(Group Boxes)
分组框(Group Boxes)允许对相关内容进行分组,增强界面的组织性和可读性。
其自定义 Header 功能使得添加图片和其他元素变得非常容易,进一步提升设计灵活性。

9、进度条
各式各样的进度条设计,解决了传统进度条调整复杂的难题。
该控件库提供的几种样式几乎覆盖了一般需求,若需进一步定制也十分简单,极大地方便了开发者。

10、对话框
遮罩式对话框不仅酷炫,还提供全窗体遮罩和局部用户控件对话框两种选择。

11、抽屉(Drawer)
抽屉式控件支持从东、南、西、北四个方向打开,增加了界面的动态感和交互性。
无论是侧边栏还是底部工具栏,抽屉控件都能提供美观的解决方案。

12、简单提示
最后但同样重要的是,简单提示信息功能。
这种方式避免了频繁弹框打扰用户,通过即时自动关闭的提示信息,用户只需一眼即可获取必要的反馈,既简洁又高效。



项目地址
GitHub:https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit
官网:http://materialdesigninxaml.net/
总结
以上仅展示了MaterialDesignInXamlToolkit控件的部分功能。更多实用特性和详细信息,请大家访问项目地址。
希望通过本文能为WPF UI 开发提供有价值的参考。欢迎在评论区留言交流,分享您的宝贵经验和建议。
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!

开源 Material Design WPF UI 控件库,易用且功能强大的更多相关文章
- UI控件库
UI控件库分享:DWZ(j-UI).LigerUI.Linb DWZ(j-UI): 在线演示地址:http://demo.dwzjs.com 在线文档:http://demo.dwzjs.com/do ...
- MahApps.Metro扁平化UI控件库(可修改主题色等)
一.名词解释 使用MahApps.Metro扁平化UI控件库,可以使界面呈现更加美观.本文将总结MahApps.Metro的使用方法,及如何自定义修改其主题颜色等. 详细内容可参考官网:https:/ ...
- winform项目中开发的一套UI控件库
https://github.com/houyhea/winform-control-lib winform-control-lib 曾经在一个winform项目中开发的一套UI控件库 类图: 效果 ...
- WPF 免费控件库
https://github.com/Infragistics/InfragisticsThemesForMicrosoftControls 几款WPF免费控件库,不过运行源码时需要下载三个DLL , ...
- WPF 免费控件库(2)
最近在逛园子的时候发现的园友分享或提及的WPF控件库~ (1) Bootstrap WPF Style,Bootstrap风格的WPF样式 转:http://www.cnblogs.com/tsliw ...
- WPF用户控件库 嵌入外部(VLC)exe
综合网上资源完成的自己的第一篇博客 ------------------------------------------------------------------------ 网上类似的贴子挺多 ...
- 一款开源免费的WPF图表控件ModernuiCharts
一款简洁好看的Chart控件 支持WPF.silverlight.Windows8 ,基本够用,主要是开源免费的.(商业控件ComponentOne for WPF要4w多呢) This proj ...
- FineUI(专业版)v3.2.0 发布(ASP.NET UI控件库)!
+2016-08-20 v3.2.0 +表格增强. +表格列RenderField增加属性ClientHtmlEncode,用于在客户端进行HTML编码. -增加示例:单元格编辑->杂项-> ...
- WPF Devexpress 控件库中ChartControl 实现股票分时走势图
概要 从事金融行业开发 ,会接触些图表控件,这里我分享一下自己基于DevExpress.Charts.v16.2开发的股票分时走势图的经验. 附上源码:点击跳转 如果需要讨论,Q群:580749909 ...
- WPF Devexpress控件库中ChartControl--实现不等距x轴
一.概要 解决问题--ChartControl不等距x轴显示 二.CS代码 用过ChartControl的开发者们应该都知道,ChartControl中设置x轴间距间隔都是固定的数值. 比如(间隔10 ...
随机推荐
- java的split方法的转义字符
一.实例 我们都知道 String s="ad,dfjdlfs,df,s,dfl"; 执行 String re[]=s.split(","); 则re ...
- ROS入门21讲(4)
八.客户端Client的编程实现 1.话题模型 服务模型(客户端/服务器) 2.创建功能包 命令: $ cd ~/catkin_ws/src $ catkin_create_pkg learning_ ...
- 枚举(C语言)
1.枚举定义 枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读. 枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性. 定义一个枚 ...
- .NET云原生应用实践(五):使用Blazor WebAssembly实现前端页面
本章目标 使用Blazor WebAssembly实现管理"贴纸"页面 集成认证与授权机制 如果你对Blazor WebAssembly的使用不感兴趣,可以跳过本章的阅读.你也可以 ...
- 基于ctfshow的信息收集思路与CTF实战
本文靶场来源于CTFshow,并不完全按照靶机的顺序排列,而是以测试操作为导向,按博主个人理解排列. 1. 前端源码 在CTF中,先看源代码是个好习惯,出题者经常会在源代码中以注释的形式提供一些提示 ...
- 案例分享-导致MySQL崩溃的SQL语句
背景 周一刚上班一个开发小哥火急火燎的过来找我,黑龙江某客户私有化环境的服务过一阵就报数据库连接失败,不知道是什么原因导致的,我以为是客户调整了网络,但是客户说并没有做任何调整,我使用ping测试也看 ...
- 剖析Air724UG的硬件设计,还有大发现?01部分
一.绪论 Air724UG是一款基于紫光展锐UIS8910DM平台设计的LTE Cat 1无线通信模组.支持FDD-LTE/TDD-LTE的4G远距离通讯和Bluetooth近距离无线传输技术,支 ...
- Converter Tutorial
Setting up a simple example This is the most basic converter... let's start with a simple Person: pa ...
- vue父组件向子组件传递一个对象,使用一个对象绑定多个 prop
如果你想要将一个对象的所有属性都当作 props 传入,你可以使用没有参数的 v-bind,即只使用 v-bind 而非 :prop-name.例如,这里有一个 post 对象: export def ...
- 2023 秋季学期 六周集训 Misc方向
by 高鹏鸿.密语 写在前面,记录和交流是一个很好的习惯,建议可以自己先搭建一个博客用于存储自己的做题记录以及方便交流.还有,对于Misc方向,灵活应对十分重要,一定要善用搜索引擎. 还有一点,给大家 ...