记录|C#+winform创建扁平化风格界面

news2024/11/24 12:53:19

本项目的C#内容是自己跟做的,自己做的内容已经打包,可以通过自己跟做写的Dashboard界面,C#下的winform模式下载获得,但是需要花费3个积分

目录

  • 前言
  • 一、左边设置和步骤
    • 界面
    • 步骤
      • Step1.
      • Step2.
      • Step3.
      • Step4
      • Step5
  • 二、右边属性和步骤
    • 属性设置
    • 步骤
      • Step1.
      • Step2.
      • Step3.
  • 三、最终效果
    • 设计图:
    • 运行图:
  • 更新时间


前言

这是篇跟练文章,主要是记录自己对视频中内容的复刻,旨在通过复刻实现对Winform中的界面布局的了解。

记录来源:[C#][Winform]如何创建一个炫酷的扁平化风格Dashboard
下载文件:自己跟做写的Dashboard界面,C#下的winform模式


一、左边设置和步骤

界面

Form

  • StartPosition:CenterScreen
  • FormBorderStyle:None
  • BackColor:46,51,73
  • Size:951,577

Panel1

  • BackColor:24,30,54
  • Dock:Left
  • Size:186,577

Panel2

  • Dock:Top
  • Size:186,144

PictureBox1

  • 参数直接点击下图中符号设置
    在这里插入图片描述
  • 具体而言,是设置了Image和SizeMode的属性。
  • Location:60,20在这里插入图片描述

Label1

  • ForeColor:0, 126, 249
  • Text:UserName
  • Font中设置如下:
    在这里插入图片描述
    Label2
  • ForeColor:158,161,178
  • BackColor:Transparent
  • Text:Some User Text Here
  • Font设置如下:
    在这里插入图片描述
    Button1
  • Name:btnDashboard
  • Text:Dashboard
  • FlatSytle:Flat
  • FlatAppearance中的BorderSize:0
  • ForeColor:0,126,249
  • Font设置如下:
    在这里插入图片描述
  • Bold:True
  • Dock:Top
  • Image:更换图标
  • Size:186,42
  • TextImageRelation:TextBeforeImage
    以上动作做好后,再次将Dock改为:None 【目的是:将这个Button1模块复制出多个】
    但是上面复制好后,仍旧是将Dock改回为Top

Button2

  • Name:btnAnalytics
  • Image:更换图
  • Text:Analytics
  • Dock:Top

Button3

  • Name:btnCalender
  • Text:Calender
  • Dock:Top

Button4

  • Name:btnContectUs
  • Text:ContectUs

Button5

  • Name:btnSettings
  • Text:Settings
  • Dock:bottom

Panel3

  • Name:PnlNav
  • BackColor:0, 126, 249
  • Size:3,194
  • Location:移动Panel3到达合适的位置【看图】

步骤

Step1.

Form创建,设置Form参数
创建Panel1,设置参数
创建Panel2,放入Panel1中设置参数,
创建PictureBox1,放入Panel2中,设置参数
创建Label1,设置参数,放在在PictureBox1下
此时效果为:
在这里插入图片描述

Step2.

创建Label2,设置参数,放置在Label1的正下方。
创建Button1,设置参数。
以Button1为模板,复制出多个Button
当前效果如下所示:【我的home.png不知道为啥很大,无法设置Zoom属性
在这里插入图片描述
后来解决了,发现这里只能通过改变.png图片自身的大小来实现调节。
在这里插入图片描述

Step3.

对这些button2~button4进行属性设置。将Panel3放在合适的位置,最终结果如下所示:
在这里插入图片描述

Step4

双击Form界面,进入Form.cs界面中编写代码
在这里插入图片描述
效果为:
在这里插入图片描述

using System.Runtime.InteropServices;

    public partial class Form1 : Form
    {
        [DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]

        private static extern IntPtr CreateRoundRectRgn
 (
       int nLeftRect,
       int nTopRect,
       int nRightRect,
       int nBottomRect,
       int nWidthEllipse,
       int nHeightEllipse

 );
        public Form1()
        {
            InitializeComponent();
            Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 25, 25));
            pnlNav.Height = btnDashboard.Height;
            pnlNav.Top = btnDashboard.Top;
            pnlNav.Left = btnDashboard.Left;
            btnDashboard.BackColor = Color.FromArgb(46, 51, 73);
        }
}

Step5

设置buton1~button5的点击事件。让Panel跟踪对应的button。

  • 设置了Panel的跟随
  • 设置了点击后的BackColor变化。【但是点击后依旧保持这个颜色,所以后面要设置离开后的事件去恢复颜色】
        private void btnDashboard_Click(object sender, EventArgs e)
        {
            pnlNav.Height = btnDashboard.Height;
            pnlNav.Top = btnDashboard.Top;
            pnlNav.Left = btnDashboard.Left;
            btnDashboard.BackColor = Color.FromArgb(46, 51, 73);
        }

        private void btnAnalytics_Click(object sender, EventArgs e)
        {
            pnlNav.Height = btnAnalytics.Height;
            pnlNav.Top = btnAnalytics.Top;
            pnlNav.Left=btnAnalytics.Left;
            btnAnalytics.BackColor = Color.FromArgb(46, 51, 73);
        }

        private void btnCalender_Click(object sender, EventArgs e)
        {
            pnlNav.Height=btnCalender.Height;
            pnlNav.Top=btnCalender.Top;
            pnlNav.Left= btnCalender.Left;
            btnCalender.BackColor = Color.FromArgb(46, 51, 73);
        }

        private void btnContectUs_Click(object sender, EventArgs e)
        {
            pnlNav.Height = btnContectUs.Height;
            pnlNav.Top = btnContectUs.Top;
            pnlNav.Left=btnContectUs.Left;
            btnContectUs.BackColor = Color.FromArgb(46, 51, 73);
        }

        private void btnSettings_Click(object sender, EventArgs e)
        {
            pnlNav.Height = btnSettings.Height;
            pnlNav.Top=btnSettings.Top;
            pnlNav.Left = btnSettings.Left;
            btnSettings.BackColor = Color.FromArgb(46, 51, 73);
        }

设置button1-button5的离开事件,让颜色恢复。

        private void btnDashboard_Leave(object sender, EventArgs e)
        {
            btnDashboard.BackColor = Color.FromArgb(24, 30, 54);
        }

        private void btnAnalytics_Leave(object sender, EventArgs e)
        {
            btnAnalytics.BackColor = Color.FromArgb(24, 30, 54);
        }

        private void btnCalender_Leave(object sender, EventArgs e)
        {
            btnCalender.BackColor = Color.FromArgb(24, 30, 54);
        }

        private void btnContectUs_Leave(object sender, EventArgs e)
        {
            btnContectUs.BackColor = Color.FromArgb(24, 30, 54);
        }

        private void btnSettings_Leave(object sender, EventArgs e)
        {
            btnSettings.BackColor = Color.FromArgb(24, 30, 54);
        }

二、右边属性和步骤

属性设置

Label4

  • font设置如下:
    [在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cdea5c2cc3eb4252aa5f9093cbed1af5.png)-

  • ForeColor:158,161,176

  • Location:20,17

  • Text:Dashboard

TextBox1

  • Text:Search For Somethings
  • Size:292, 28
  • MultiLine:True
  • ForeColor:200,200,200
  • Font设置:
    在这里插入图片描述
  • BackColor:74, 79, 99

button1

  • Text:X
  • Size:25,25
  • ForeColor:White
  • FlatStyle:Flat
  • FlatAppearence下的BorderSize:0

Panel5

  • Size:258,130
  • BackColor:37,42,64

Label5

  • ForeColor:White
  • Text:Earning
  • Font:
    在这里插入图片描述

Label6

  • Text:$12345
  • ForeColor:0,146,249
  • Font:
    在这里插入图片描述

Label7

  • Text:Details of Last 28 Days
  • Font:
    在这里插入图片描述
  • ForeColor:159,151,176

PictureBox2

  • sizeMode:Zoom

步骤

Step1.

创建Panel4,用于遍布右边窗口界面。
创建Label3,放入Panel4左上角。
创建TextBox1,放在左边
创建Button放在TextBox1的右边
创建Panel5,放在Label3的下边
创建Label4和Label5,Label6和Label7放在Panel4中
创建PictureBox2,放在Panel5中。
当前效果如下图所示:
在这里插入图片描述

Step2.

复制Step1.中的内容,只需要更改色彩和图片即可。
ForeColor:50, 226, 178
在这里插入图片描述

Step3.

创建个button,用于显示进度图。【视频中是用了CircularProgressBar组件,很遗憾我没有,只要用贴图在button上的方式实现,或者用PictureBox来实现】
在这里插入图片描述

三、最终效果

设计图:

在这里插入图片描述

运行图:

在这里插入图片描述

更新时间

  • 2024.07.22:创建,上传C#源代码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PyTorch】基于LSTM网络的气温预测模型实现

假设CSV文件名为temperature_data.csv,其前五行和标题如下: 这里,我们只使用Temperature列进行单步预测。以下是整合的代码示例: import pandas as pd import numpy as np import torch import torch.nn as nn import torch.op…

【深度学习】yolov8-seg分割训练,拼接图的分割复原

文章目录 项目背景造数据训练 项目背景 在日常开发中,经常会遇到一些图片是由多个图片拼接来的,如下图就是三个图片横向拼接来的。是否可以利用yolov8-seg模型来识别出这张图片的三张子图区域呢,这是文本要做的事情。 造数据 假设拼接方式有…

Qt+OpenCascade开发笔记(一):occ的windows开发环境搭建(一):OpenCascade介绍、下载和安装过程

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140604141 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

OpenStack Yoga版安装笔记(八)glance练习补充2

1、openstack image list数据流回顾 OpenStack Yoga版安装笔记(七)通过Wireshark抓包、Mermaid绘图,解析了执行openstack image list的数据流,图示如下: 数据流1-4:user admin认证,并获得admin…

ros2--中间件--rmw

rmw robot middleware 什么是中间件 一套位于操作系统之上,引用程序之下的软件。 在ros2中理解就是:中间件就是介于某两个或者多个节点中间的组件 中间件的作用 就是提供多个节点中间通信用的。 教程 ROS2中间件DDS架构 ros2从入门到精通

使用puma部署ruby on rails的记录

之前写过一篇《记录一下我的Ruby On Rails的systemd服务脚本》的记录,现在补上一个比较政治正确的Ruby On Rails的生产环境部署记录。使用Puma部署项目。 创建文件 /usr/lib/systemd/system/puma.service [Unit] DescriptionPuma HTTP Server DocumentationRuby O…

在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法

文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法各有不同。以下是针对每种操作系统的详细步骤: Linux 使用DHCP客户端:大多数Linux发行版都使用DHCP(动态主机配置协议)来自动获取IP地址…

RT-Thread全球嵌入式电子设计大赛入选名单发布!

目录 概述 ​1 瑞萨 RA8D1 Vision Board 2 英飞凌 Psoc6-EvaluationKit-062S2 WIFI模块 3 恩智浦 FRDM-MCXN947 4 STM32 星火一号 STM32F407 5 先楫 HPM5300EVK (RISC-V) 6 自带开发板 概述 RT-Thread全球嵌入式电子设计大赛入选名单发布啦,如下名单的小…

数学建模学习(3)——模拟退火算法

一、模拟退火算法解TSP问题 import random import numpy as np from math import e, exp import matplotlib.pyplot as plt# 31个城市的坐标 city_loc [(1304, 2312), (3639, 1315), (4177, 2244), (3712, 1399), (3488, 1535),(3326, 1556), (3238, 1229), (4196, 1004), (4…

FPGA开发在verilog中关于阻塞和非阻塞赋值的区别

一、概念 阻塞赋值:阻塞赋值的赋值号用“”表示,对应的是串行执行。 对应的电路结构往往与触发沿没有关系,只与输入电平的变化有关系。阻塞赋值的操作可以认为是只有一个步骤的操作,即计算赋值号右边的语句并更新赋值号左边的语句…

如何将mp4格式的视频压缩更小 mp4格式视频怎么压缩最小 工具软件分享

在数字化时代,视频内容成为信息传播的重要载体。然而,高清晰度的视频往往意味着较大的文件体积,这给存储和分享带来了一定的困扰。MP4格式作为目前最流行的视频格式之一,其压缩方法尤为重要。下面,我将为大家详细介绍如…

力扣高频SQL 50题(基础版)第六题

文章目录 1378. 使用唯一标识码替换员工ID题目说明思路分析实现过程结果截图总结 1378. 使用唯一标识码替换员工ID 题目说明 Employees 表: ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ------…

自监督学习在言语障碍及老年语音识别中的应用

近几十年来针对正常言语的自动语音识别(ASR)技术取得了快速进展,但准确识别言语障碍(dysarthric)和老年言语仍然是一项极具挑战性的任务。言语障碍是一种由多种运动控制疾病引起的常见言语障碍类型,包括脑瘫…

Elasticsearch基础(六):使用Kibana Lens进行数据可视化

文章目录 使用Kibana Lens进行数据可视化 一、进入Kibana Lens 二、基础可视化 1、指标可视化 2、垂直堆积条形图 3、表格 三、高级可视化 1、多图层和索引 2、子桶 3、树状图 使用Kibana Lens进行数据可视化 一、进入Kibana Lens 在Kibana主页,单击页面…

中文分词库 jieba 详细使用方法与案例演示

1 前言 jieba 是一个非常流行的中文分词库,具有高效、准确分词的效果。 它支持3种分词模式: 精确模式全模式搜索引擎模式 jieba0.42.1测试环境:python3.10.9 2 三种模式 2.1 精确模式 适应场景:文本分析。 功能&#xff1…

OpenAI从GPT-4V到GPT-4O,再到GPT-4OMini简介

OpenAI从GPT-4V到GPT-4O,再到GPT-4OMini简介 一、引言 在人工智能领域,OpenAI的GPT系列模型一直是自然语言处理的标杆。随着技术的不断进步,OpenAI推出了多个版本的GPT模型,包括视觉增强的GPT-4V(GPT-4 with Vision&…

【接口自动化_07课_Pytest+Excel+Allure完整框架集成_下】

目标:优化框架场景 1. 生成对应的接口关联【重点】 2. 优化URL基础路径封装【理解】 3. 利用PySQL操作数据库应用【理解】--- 怎么用python连接数据库、mysql 4. 通过数据库进行数据库断言【重点】 5. 通过数据库进行关联操作【重点】 一、接口关联&#xff1a…

深入浅出mediasoup—协议交互

本文主要分析 mediasoup 一对一 WebRTC 通信 demo 的协议交互,从协议层面了解 mediasoup 的设计与实现,这是深入阅读 mediasoup 源码的重要基础。 1. 时序图 下图是 mediasoup 客户端-服务器协议交互的总体架构,服务器是一个 Node.js 进程加…

Django学习第一天(如何创建和运行app)

前置知识: URL组成部分详解: 一个url由以下几部分组成: scheme://host:port/path/?query-stringxxx#anchor scheme:代表的是访问的协议,一般为http或者ftp等 host:主机名,域名,…

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(三)基变换与坐标变换;微分方程;李群和李代数;雅可比矩阵

一、基变换与坐标变换 字小,事不小。 因为第一反应:坐标咋变,坐标轴就咋变呀。事实却与我们想象的相反。这俩互为逆矩阵。 第一次读没有读明白,后面到事上才明白。 起因是多传感器标定:多传感器,就代表了多个坐标系,多个基底。激光雷达和imu标定。这个标定程序,网上,…