3、.Net UI库:MaterialSkin - 开源项目研究文章

  

  MaterialSkin 是一个开源的 WinForms 第三方库,提供了许多仿谷歌设计风格的组件,使得 WinForms 窗体程序更加美观。以下是 MaterialSkin 的一些关键特点和使用方法:

  主要特点:

  1. 仿谷歌设计风格:MaterialSkin 提供了大量符合 Material Design 风格的控件,使得应用程序界面更加现代和美观。

  2、开源:MaterialSkin 是完全开源的,用户可以自由地扩展或修改控件。

  3、主题和颜色方案:支持深色和浅色主题的切换,以及丰富的颜色方案,用户可以根据需要自定义应用程序的主题和颜色。

  4、控件多样性:包含按钮、表单、导航栏、侧边栏等多种控件,满足不同开发需求。

  5、高自定义性:控件具有高自定义性,用户可以通过修改属性来达到想要的效果。

  使用方法:

  1、导入项目

    • 在 Visual Studio 中打开工具箱,右击并选择“添加选项卡”,命名为 MaterialSkin。
    • 右击新选项卡,选择“添加选择项”,浏览并添加 MaterialSkin.dll 文件
    •   。

      2、添加引用

    • 在项目中添加对 MaterialSkin.dll 的引用。可以通过解决方案资源管理器右键点击“引用”,选择“浏览”并添加 MaterialSkin.dll
    •   。

      3、初始化 MaterialSkinManager

    • 在主窗体文件中引用 MaterialSkin 命名空间:

      using MaterialSkin;

      using MaterialSkin.Controls;

      将窗体继承自 MaterialForm:

      public partial class Form1 : MaterialForm

      在构造函数中初始化 MaterialSkinManager:

    • private readonly MaterialSkinManager materialSkinManager;
    • public Form1()
    • {
    •     InitializeComponent();
    •     materialSkinManager = MaterialSkinManager.Instance;
    •     materialSkinManager.EnforceBackcolorOnAllComponents = true;
    •     materialSkinManager.AddFormToManage(this);

      }

      设置主题和颜色方案

    • 在构造函数中设置主题和颜色方案:
    • materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT;

      materialSkinManager.ColorScheme = new ColorScheme(Primary.Indigo500, Primary.Indigo700, Primary.Indigo100, Accent.Pink200, TextShade.WHITE);

      切换主题和颜色

    • 可以通过按钮点击事件切换主题:

      private void btn_ChangeTheme_Click(object sender, EventArgs e)

      {

        materialSkinManager.Theme = materialSkinManager.Theme == MaterialSkinManager.Themes.DARK ?

        MaterialSkinManager.Themes.LIGHT : MaterialSkinManager.Themes.DARK;

      }

      更改颜色方案:

      • private int colorSchemeIndex;
      • private void materialButton6_Click(object sender, EventArgs e)
      • {
      •     colorSchemeIndex++;
      •     if (colorSchemeIndex > 2)
      •         colorSchemeIndex = 0;
      •     updateColor();
      • }
      • private void updateColor()
      • {
      •     switch (colorSchemeIndex)
      •     {
      •         case 0:
      •             materialSkinManager.ColorScheme = new ColorScheme(
      •                 Primary.Indigo500,
      •                 Primary.Indigo700,
      •                 Primary.Indigo100,
      •                 Accent.Pink200,
      •                 TextShade.WHITE);
      •             break;
      •         case 1:
      •             materialSkinManager.ColorScheme = new ColorScheme(
      •                 Primary.Green600,
      •                 Primary.Green700,
      •                 Primary.Green200,
      •                 Accent.Red100,
      •                 TextShade.WHITE);
      •             break;
      •         case 2:
      •             materialSkinManager.ColorScheme = new ColorScheme(
      •                 Primary.BlueGrey800,
      •                 Primary.BlueGrey900,
      •                 Primary.BlueGrey500,
      •                 Accent.LightBlue200,
      •                 TextShade.WHITE);
      •             break;
      •     }
      •     Invalidate();
      • }

        MaterialSkin 提供了丰富的控件和灵活的自定义选项,使得开发者可以轻松创建出具有现代感的 WinForms 应用程序。更多详细信息和使用教程可以参考相关博客和文档。

        网址:https://gitee.com/zxh126/MaterialSkin2

      本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/484539.html

      如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

      相关文章

      VMware安装windows2003

      一、安装vm 这一项大家应该都会,网上也有很多教程。 二、搭建Windows server 2003 1、镜像下载- 2、虚拟机安装 首先是新建虚拟机,我选的是自定义,也可以选典型 第一步默认下一步,也可以是自己的情况做修改 第二步选择稍后安…

      51c自动驾驶~合集11

      我自己的原文哦~ https://blog.51cto.com/whaosoft/12684932 #如何在自动驾驶的视觉感知中检测corner cases? 一篇来自德国大学的论文:“Corner Cases for Visual Perception in Automated Driving: Some Guidance on Detection Approaches“&#xf…

      四、自然语言处理_02RNN基础知识笔记

      1、RNN的定义 RNN(Recurrent Neural Network,循环神经网络)是一种专门用于处理序列数据的神经网络架构,它与传统的前馈神经网络(Feedforward Neural Network)不同,主要区别在于它能够处理输入数…

      梯度提升树(GBDT)与房价预测案例

      文章目录 什么是梯度提升树(GBDT)?核心思想GBDT 的特点 梯度提升树的应用案例:房价预测场景描述步骤详解代码详情 详细代码讲解1. 导入必要的库2. 设置中文字体支持3. 可视化真实值与预测值4. 可视化预测误差分布5. 代码的运行效果…

      Rust : 生成日历管理markdown文件的小工具

      需求: 拟生成以下markdown管理小工具,这也是我日常工作日程表。 可以输入任意时间段,运行后就可以生成以上的markdown文件。 一、toml [package] name "rust-workfile" version "0.1.0" edition "2021"[d…

      Linux网络:代理 穿透 打洞

      Linux网络:代理 & 穿透 代理正向代理反向代理 内网穿透frp 内网打洞 代理 正向代理 正向代理是一种常见的网络代理方式,它位于客户端与目标服务器之间,代表客户端向服务器发送请求,接收响应。 如图,客户端发送的…

      给el-table表头添加icon图标,以及鼠标移入icon时显示el-tooltip提示内容

      在你的代码中,你已经正确地使用了 el-tooltip 组件来实现鼠标划过加号时显示提示信息。el-tooltip 组件的 content 属性设置了提示信息的内容,placement 属性设置了提示信息的位置。 你需要确保 el-tooltip 组件的 content 属性和 placement 属性设置正…

      游戏引擎学习第30天

      仓库: https://gitee.com/mrxiao_com/2d_game 回顾 在这段讨论中,重点是对开发过程中出现的游戏代码进行梳理和进一步优化的过程。 工作回顾:在第30天,回顾了前一天的工作,并提到今天的任务是继续从第29天的代码开始&#xff0c…

      python使用python-docx处理word

      文章目录 一、python-docx简介二、基本使用1、新建与保存word2、写入Word(1)打开文档(2)添加标题(3)添加段落(4)添加文字块(5)添加图片(6&#xf…

      springboot kafka在kafka server AUTH变动后consumer自动销毁

      前言 笔者使用了kafka用来传输数据,笔者在今年10月写了文章,怎么使用配置化实现kafka的装载:springboot kafka多数据源,通过配置动态加载发送者和消费者-CSDN博客 不过在实际运行中,kafka broker是加密的&#xff0c…

      Jupyter Lab打印日志

      有时候在 jupyter 中执行运行时间较长的程序,且需要一直信息,但是程序执行到某些时候就不再打印了。 可以开启 日志控制台,将日志信息记录在控制台中。 参考:https://www.autodl.com/docs/jupyterlab/

      EtherCAT转ProfiNet网关实现西门子1200PLC与伺服电机连接的通讯案例

      一. 案例背景 西门子1200PLC通过捷米特JM-ECTM-PN(EtherCAT转ProfiNet)网关将松下伺服电机(包括不限于型号MHMFO22D1U2M)或EtherCAT协议的其它设备或连接到ProfiNetPLC上,并在正常运行中支持EtherCAT协议。本产品可作为EtherCAT主站,做为西门子S7-1200系…

      Redis 基础、Redis 应用

      Redis 基础 什么是 Redis? Redis (REmote DIctionary Server)是一个基于 C 语言开发的开源 NoSQL 数据库(BSD 许可)。与传统数据库不同的是,Redis 的数据是保存在内存中的(内存数据库&#xf…

      Vue 组件通信全面解析

      Vue 组件通信全面解析:方式、原理、优缺点及最佳实践 在 Vue 开发中,组件通信是一个重要的核心问题。随着应用复杂度的增加,如何在组件之间有效传递数据、触发事件,直接影响代码的可维护性和可扩展性。Vue 提供了多种组件通信方式…

      Python-链表数据结构学习(1)

      一、什么是链表数据? 链表是一种通过指针串联在一起的数据结构,每个节点由2部分组成,一个是数据域,一个是指针域(存放下一个节点的指针)。最后一个节点的指针域指向null(空指针的意思&#xff0…

      电脑插入耳机和音响,只显示一个播放设备

      1. 控制面板-硬件和声音-Realtek高清音频-扬声器-设备高级设置-播放设备里选择使用前部和后部输出设备同时播放两种不同的音频流 在声音设置中就可以看到耳机播放选项

      ISAAC SIM踩坑记录--添加第三方3D场景

      ISAAC SIM仿真首先就是要有合适的3D场景,官方提供了一些场景,如果不能满足要求,那就只能自己建。 对于我这种不会3D建模的菜鸟,只能到网上下载了,sketchfab就是一个不错的平台,有不少免费资源可以下载。 …

      CentOS 9 配置静态IP

      文章目录 1_问题原因2_nmcli 配置静态IP3_使用配置文件固定IP4_重启后存在的问题5_nmcli 补充 1_问题原因 CentOS 7 于 2014年6月发布,基于 RHEL 7,并在 2024年6月30日 结束维护。 CentOS 9 作为目前的最新版本,今天闲来闲来无事下载下来后…

      C++趣味编程玩转物联网:基于树莓派Pico控制无源蜂鸣器-实现音符与旋律的结合

      无源蜂鸣器是一种多功能的声音输出设备,与有源蜂鸣器相比,它能够通过不同频率的方波生成丰富多样的音调。本项目使用树莓派Pico开发板,通过编程控制无源蜂鸣器播放经典旋律《归来有风》。本文将详细介绍项目实现中的硬件连接、C++代码解析,以及无源蜂鸣器的工作原理。 一、…

      【AI模型对比】Kimi与ChatGPT的差距:真实对比它们在六大题型中的全面表现!

      文章目录 Moss前沿AI语义理解文学知识数学计算天文学知识物理学知识英语阅读理解详细对比列表总结与建议 Moss前沿AI 【OpenAI】获取OpenAI API Key的多种方式全攻略:从入门到精通,再到详解教程!! 【VScode】VSCode中的智能AI-G…