首页 > 其他分享 >Wpf UI框架 MaterialDesign 的使用记录

Wpf UI框架 MaterialDesign 的使用记录

时间:2024-05-22 22:52:36浏览次数:28  
标签:颜色 框架 配置文件 MaterialDesign UI Wpf

近期公司有桌面客户端的开发需求,并且对样式和界面反馈有一定的要求,对比各种开源UI框架后确认使用MaterialDesign 。

1、引入框架MaterialDesignThemes,注意下对应的版本号,我用的2.6.0的。原因嘛视频教程就是这个版本。

 

 2、App.xaml中引用样式文件注释下面的可以先不用加,后面会说到具体作用。

复制代码
<Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.LightBlue.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <!--重写框架主体色-->
            <SolidColorBrush x:Key="PrimaryHueLightBrush" Color="#3b76ee" />
            <SolidColorBrush x:Key="PrimaryHueLightForegroundBrush" Color="#3b76ee"  />
            <SolidColorBrush x:Key="PrimaryHueMidBrush" Color="#3b76ee"  />
            <SolidColorBrush x:Key="PrimaryHueMidForegroundBrush" Color="#3b76ee"  />
            <SolidColorBrush x:Key="PrimaryHueDarkBrush" Color="#3b76ee"  />
            <SolidColorBrush x:Key="PrimaryHueDarkForegroundBrush" Color="#3b76ee"  />
        </ResourceDictionary>
    </Application.Resources>
复制代码

3、在窗体页面代码中引入 xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" 

 

 4、下载官网demo app,官方下载地址:https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/releases。注意下载和第一步引入框架的版本一致,打开后界面如下:

 

 

举个栗子,比如你要用某个按钮的样式,打开左侧菜单,选择button,找到想要的按钮,点右下角复制代码:

 

 这里面东西很多,需要的可以自己慢慢看。

5、说说第3步注释下面的配置吧,由于公司设计给的颜色在框架的主体色中没有,所以我把LightBlue主题的所有颜色重写了。MaterialDesign 有很多的主题色,都在上面这个demo里面。

 

这些都是主题名称,并且在第3步的配置文件中可以直接替换Primary后面的文件名称。如果你需要的主题颜色在这里面找不到,那就像我一样把所有的颜色改成你要得颜色。至于为什么知道这么改,下载MaterialDesign 源码后,在MaterialDesignColors.Wpf类库下,打开如图的文件夹,找到对应的主题配置文件,打开后就是我图里这样。没仔细看都是什么意思,直接把9-14行全部复制到自己的项目里面,把颜色改了,最后就像我那个配置文件一样。

 

6、框架控件的属性后台代码赋值方式

 

MaterialDesignThemes.Wpf.ButtonAssist.SetCornerRadius(waitPaientBtn, new CornerRadius(10, 0, 0, 0));

 

7、一些效果页面,公司产品有些不得已打码了。

登陆页

 

 业务界面

 

 自己封装的提醒页面

 

 

 

 

 

上一篇java tcp socket readline 阻塞问题处理 下一篇一次mysql cpu占用300%的排查过程记录 甘于平凡,做一个甘于平凡的人,菜米油盐,生老病死。

本文作者:Rolay

本文链接:https://www.cnblogs.com/rolayblog/p/15630417.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

标签:颜色,框架,配置文件,MaterialDesign,UI,Wpf
From: https://www.cnblogs.com/webenh/p/18207309

相关文章

  • WPF 给类库设置设计时使用的资源字典
    WPF给类库设置设计时使用的资源字典 在开发多语言版本时,我将界面显示的文本保存在语言资源zh.xaml和en.xaml中,但程序启动,加载语言资源时是外部的配置文件决定的,因此语言资源我无法添加在App.xaml文件中,而开发单个XAML界面时,设计器将会因为找不到资源文件的存在,而拿不到资......
  • WPF 实现触摸滑动功能
    自定义ScrollViewer的Touch事件--触摸上下移动ScrollViewer滚动到指定位置 12345678910111213141516171819202122232425262728double mPointY;//触摸点的Y坐标double mOffsetY;//滚动条当前位置bool mIsTouch= false;//是否触......
  • GeneralUpdate .Net5 WPF、Winfrom、控制台应用自动更新组件
    https://www.bilibili.com/video/BV1aX4y137dd/?vd_source=43d3e66cc2ad46bac54dfb0c6a3a0a23    GeneralUpdate教程2022.4.23 https://www.bilibili.com/video/BV1FT4y1Y7hV/?vd_source=43d3e66cc2ad46bac54dfb0c6a3a0a23   https://mp.weixin.qq.com/s/pR......
  • 全局设置element-ui Dialog组件的close-on-click-modal属性为false
    前言element组件库的Dialog对话框默认可以通过点击modal关闭Dialog,即点击空白处弹框可关闭。属性  importElementUIfrom'element-ui'import'element-ui/lib/theme-chalk/index.css'//默认主题//全局修改默认配置,点击空白处不能关闭弹窗ElementUI.Dialog.......
  • element ui 动态表头不刷新问题
    今天弄vue前端,动态表头出现如题问题。代码如下<el-table-columnv-for="(item,index)intableHeads":key="index"><templateslot="header">//处理表头业务逻辑……<div>{{item.num}}</div></template></el-table-column>......
  • 基于WPF+Sqlite开发抽奖软件【内附源码】
    在很早之前,就想过开发一款抽奖软件,却一直没有实际去做,最近经过一段时间的准备,终于开发出了一款基于WPF+Sqlite版的抽奖软件,包括客户端和管理端。本项目主要是为了熟悉WPF开发流程,仅供学习分享使用,如有不足之处,还请指正。 涉及知识点 抽奖软件是包括客户端和管理端,在抽奖软件......
  • vue搭建脚手架 出现问题Command vue init requires a global addon to be installed.
    使用vue-cli脚手架命令vueinitwebpackmy-App创建项目回车时显示Commandvueinitrequiresa global addontobeinstalled.Pleaserun yarn globaladd@vue/cli-initandtryagain. 解决方法:npminstall-g@vue/cli-init 然后创建项目,正常。 ......
  • 使用安卓片段创建动态-UI-全-
    使用安卓片段创建动态UI(全)原文:zh.annas-archive.org/md5/483E44769E1E47CD0C380E136A5A54D5译者:飞龙协议:CCBY-NC-SA4.0前言移动应用静态用户界面挤在微小屏幕上的日子已经一去不复返了。如今,用户期望移动应用是动态且高度交互的。他们希望在中分辨率智能手机上查看应用......
  • WPF ListBox thumbnails and image mvvm behavior CallMethodAction
    <Windowx:Class="WpfApp108.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • duilib 自定义控件
    1.主窗口自定义FramWnd继承WindowImplBase,重写CreateControl,HandleMessage.组合CPaintManagerUI.2.自定义控件自定义mycontrol继承CControlUI重写DoEvent,DoPaint,SetPos.main.cpp#include"FramWnd.h"intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCE/*hPrev......