首页 > 其他分享 >3、.Net UI库:MaterialSkin - 开源项目研究文章

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

时间:2024-12-04 16:43:51浏览次数:6  
标签:控件 ColorScheme materialSkinManager Primary MaterialSkin UI Net MaterialSkinManag

  

  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

标签:控件,ColorScheme,materialSkinManager,Primary,MaterialSkin,UI,Net,MaterialSkinManag
From: https://www.cnblogs.com/lzhdim/p/18333175

相关文章

  • 兰亭妙微 UI:雕琢医疗界面,绘就健康新篇
    在医疗数字化的浪潮中,界面设计成为连接医患、传递健康的关键桥梁。兰亭妙微UI设计公司,以匠心独运之笔,为医疗行业勾勒出未来的蓝图。我们深入洞察医疗场景,从患者的便捷就医到医生的高效诊疗,每一处交互都精心打磨。简洁直观的操作流程,让患者在病痛中不再为复杂的挂号、问诊步骤......
  • SM2604弹窗-layui
    1、添加路径SM2604,/layui-v2.2.5/layui.js 放在PU脚本集合中的第1个  2、layui.use(['layer','form'],function(){varform=layui.form;varlayer=layui.layer;$=layui.jquery;$("#btn_val_CPMC").click(function(){varsql="sel......
  • Net中RabbitMq.Client7.0通过依赖注入DI来管理RabbitMQ客户端的生命周期
    在RabbitMQ.Client7.0.0版本中,IModel在RabbitMQ.Client7.0.0-alpha2版本中已经被重命名,现在应该使用IChannel替代IModel,IChannel不再提供CreateBasicProperties方法。需要直接使用BasicProperties类来创建消息属性。前言关于RabbitMq的更多知识点在:https://ww......
  • B站朝夕教育 【.NET9.0+WPF实战三类流程化业务逻辑控制】学习记录 【七】
    播放地址:20241120-.NET9.0+WPF实战三类流程化业务逻辑控制-10_哔哩哔哩_bilibili第16-19节调整代码让拖拽到控制流程图里的模块可以再次拖拽移动MainView.xaml文件主要调整ItemsControl中的节点增加几个事件,这里注意 TargetObject="{BindingRelativeSource={RelativeSource......
  • ArkUI与MVVM模式的诗和远方
    大家好,我是V哥。今天的内容我们来聊一聊MVVM模式在鸿蒙原生应用开发中的使用,比如做过Android开发的兄弟应该清楚,MVVM(Model+View+ViewModel)模式是一种设计模式,用于分离应用程序的业务逻辑、用户界面和数据模型。这种模式特别适用于构建富客户端应用程序,如桌面或移动应......
  • stable diffusion Controlnet常用控制类型解析与实战课程1
    本节内容,给大家带来的是StableDiffusionControlNet常用控制类型解析与实战课程的第一节课程。在上期课程中,我们已经了解了ControlNet的基本概念和使用方法,我们也知道,ControlNet提供了多达十几种的控制方式,而且控制类型和数量还在不断增加中,我们在使用controlnet时,经常遇到......
  • [ComfyUI教程]CATVTON-Flux:电商虚拟换衣!基于黑森林F1重绘和阿里In Context LORA电商
    前言CATVTON-Flux:基于黑森林F1和阿里In-Context-LORA虚拟换衣......
  • [ComfyUI教程]Flux:国潮经典!敦煌古韵与现代极简国潮插画,敦煌风十二生肖和邮票集锦
    前言Flux.1_禅丨飞天艺梦Flux.1_禅丨飞天艺梦简介F.1LORA模型:Flux.1_禅丨飞天艺梦。该模型已被LIBLIB推荐首页优质国潮插画。该模型专注于以敦煌图案色调为基础设计的一款极简风格国潮插画LORA模型。该模型具有很好的泛化,支持十二生肖、人物等泛化。尤其作者还专门......
  • CentOS报错:No suitable device found for this connection device lo not available b
    执行命令:ifup lo 时,Centos无法获取IP报错:Nosuitabledevicefoundforthisconnectiondevicelonotavailablebecausedeviceisstrictlyunmanaged1.错误现象Nosuitabledevicefoundforthisconnection(devicelonotavailablebecausedeviceisstrictlyu......
  • B站朝夕教育 【.NET9.0+WPF实战三类流程化业务逻辑控制】学习记录 【六】
    播放地址:20241120-.NET9.0+WPF实战三类流程化业务逻辑控制-10_哔哩哔哩_bilibili第14-15节调整代码让拖拽到控制流程图里的模块产生位移NodeModel新增两个属性X,Y记录控件的位置信息1publicabstractclassNodeModel:ObservableObject2{3publicabstra......