尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

WPF 一键换 Material Design 皮肤,从按钮到对话框全搞定

WPF 一键换 Material Design 皮肤,从按钮到对话框全搞定 WPF 一键换 Material Design 皮肤从按钮到对话框全搞定【免费下载链接】MaterialDesignInXamlToolkitGoogles Material Design in XAML WPF, for C# VB.Net.项目地址: https://gitcode.com/gh_mirrors/ma/MaterialDesignInXamlToolkitWPF 写出来的软件为什么总像十年前的样子按钮方方正正弹窗灰扑扑配色也懒得调。问题多半不在你而在默认控件就是老样式。MaterialDesignInXamlToolkit 就是来解决这件事的它是一个 WPF 的 Material Design 主题和控件库装上之后普通控件自动换成 Google Material Design 风格。 WPF 换 Material 皮肤后长什么样装上之后你的应用长这样圆角卡片、干净的导航和统一字重整套界面像一次装好的成品。按钮有圆形图标款、不同圆角的矩形款颜色全跟主题走不用再自己画。 WPF 三步跑起来装 NuGet 包在包管理器控制台执行Install-Package MaterialDesignThemes再装一个MaterialDesignColors提供配色。合并资源字典打开 App.xaml在 Application.Resources 的 MergedDictionaries 里加两行一行是主题MaterialDesignTheme 下的 Light 或 Dark 字典想上 MD3 就换 MaterialDesign3 字典一行是 MaterialDesignColors 里的主色字典。给应用定个初始配色最省事的是写一个 BundledTheme 标签PrimaryColor 和 BaseTheme 两个属性决定主色和深浅模式一行顶过去materialDesign:BundledTheme BaseThemeLight PrimaryColorDeepPurple SecondaryColorLime /跑起来你会发现按钮、输入框、下拉框、进度条全都自动套上 Material Design 样式一行 Style 都没写。️ 三个真正好用的功能WPF 运行时一键换肤不改包就能换颜色问题用户想换个深色模式或主色难道要重新打包做法代码里拿一个 PaletteHelper先 GetTheme() 取出当前主题然后 SetBaseTheme 在浅色和深色之间切SetPrimaryColor 换个主色最后 paletteHelper.SetTheme(theme) 应用回去。效果整个界面立刻换配色不用重启、不用换资源包。演示应用里的明暗切换开关和调色板面板就是这么实现的。WPF 对话框这样写不丑DialogHost 接管弹窗问题原生 MessageBox 没法定制自己画个弹窗又容易挡住主界面、层级乱掉。做法用 DialogHost 控件包一层页面把对话框内容放进它的 DialogContent然后在任意按钮上挂 OpenDialogCommand 命令。效果点按钮就弹出带动画的对话框内容想传什么传什么表单、进度条都行甚至可以直接传一个 ViewModel 配 DataTemplate。WPF 界面加 Material 图标只需一个 Kind问题图标找 PNG、切尺寸、管资源文件麻烦。做法放一个 PackIcon 控件写KindSettings Size24就完事库里内置了数千个矢量图标。效果矢量渲染缩多大都不糊颜色跟随主题自动变菜单、按钮、列表里随手放。⚠️ 用了 WPF Material Design 主题容易踩的坑大阴影别铺整页卡片和浮层适量用阴影是渲染性能的大头。页面自带的翻页、展开动画已经不少再叠加自定义复杂动画容易掉帧。颜色资源集中在 App.xaml 合并别在多个页面重复引同一套颜色字典。主色一次选定避免运行时高频整包换肤造成资源反复重载。 接下来看哪里想看完整效果直接跑两个演示应用MD3 的新版演示在 src/MaterialDesign3.Demo.Wpf/MD2 的经典版演示在 src/MainDemo.Wpf/。把这两个项目都打开翻到对话框、调色板和图标页每个功能的现成写法都能直接抄。【免费下载链接】MaterialDesignInXamlToolkitGoogles Material Design in XAML WPF, for C# VB.Net.项目地址: https://gitcode.com/gh_mirrors/ma/MaterialDesignInXamlToolkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表