当前位置:首页 > 人生 > 作品墙 > 正文内容

CConUI-WinForm

作品墙5年前 (2022-01-22)

介绍


CConUI-WinForm 是一款精心打造的 WinForm 控件库,

它依托于.Net Framework 4.0 进行开发。

其整体界面风格紧跟当下扁平化设计潮流,简约而不失大气,无论是视觉呈现还是交互体验,都致力于为用户带来最直观的感受。

在技术实现层面,CConUI-WinForm 凭借精湛的编码技艺,所有控件均通过纯代码精心雕琢而成,未引入任何第三方插件与类库,

这不仅确保了控件库体积小巧轻盈,不占用过多系统资源,还使得其指令体系与 WinForm 原生控件高度相近,

对于熟悉 WinForm 开发的人员而言几乎零学习成本,上手即用。

更为突出的是,它能用最精简的代码实现高效运行,将卓越性能与便捷开发完美融合。

开发者只需轻松将其 DLL 文件导入项目,便可无缝开启高效的界面开发之旅,快速搭建出功能强大、美观实用的 WinForm 应用程序。


控件


列表


左侧选择夹

GIF.gif


顶部选择夹















已实现控件

横向滚动条VScrollBar
纵向滚动条HScrollBar
ARGB颜色对话框ArgbColorDialog
右键菜单ContextMenu
文本框(含部分代码框功能)TextBox
图片框PictureBox
蚂蚁线AntLine
进度条A(长条形进度条)ProgressBarA
进度条B(圆形顺时针半扇形进度)ProgressBarB
进度条C(圆形,由底向上,水平提升进度)ProgressBarC
进度条D(圆形,由底向上,水平提升改为动态贝塞尔曲线)ProgressBarD
进度条E(由多个扇形块组成的进度控件)ProgressBarE
进度条F(圆环扇区进度条)ProgressBarF
切换按钮SwitchButton
单选按钮
RadioButton
复选框
CheckBox
颜色按钮ButtonA
图像按钮ButtonB





更新日志

日期版本说明
202201201.0.0.01.0正式编译
202412211.0.1.0

按钮控件:修复鼠标放开时,不在控件区域内仍触发事件的bug

单选框控件[CRadioButtonA]:修复自身可以被取消选择的bug

列表框控件[CListBoxA]:修复在设计器中设置itemHeight时未及时刷新显示的bug

202501011.1.0.0

新增控件[Cbuttonc]:

    为Cbuttona和Cbuttonb的结合体

    Cbuttona绘制颜色+文本

    Cbuttonb绘制图片+文本

    Cbuttonc绘制颜色+图片+文本

    支持透明通道

    用于实现带图标的颜色按钮

202609221.1.1.0增加控件:VScrollBar和HScrollBar,为横向滚动条和纵向滚动条,支持自动识别同层控件,双色轨道,右键点击直达,隐藏箭头,图像代替箭头,隐藏箭头区域,隐藏滑块,
202609271.1.2.0增加控件:TextBox,继承自Control,自绘完整的功能,横向滚动条和纵向滚动条使用前两天开发的控件
202610101.1.3.0增加控件:ContextMenu,自绘右键菜单,功能完整,全部颜色可设置,修改TextBox控件的右键菜单改为调用ContextMenu。
202610121.1.4.0增加控件:ArgbColorEditor,为ARGB颜色值编辑控件,可通过滑块条设置透明度,使用例子可查看【调用ArgbColorEditor】
202610221.1.4.1优化控件:TextBox,在普通文本框的基础上,增加了行号显示,括号识别,等一系列偏向代码框的功能(未实现代码高亮)
202610231.1.5.0增加图片框PictureBox控件。支持常见的显示模式,支持鼠标操作功能(由bool属性控制是否启用),左键拖放,滚轮缩放,右键复原。支持获取滚轮放大后实际显示的区域。
202610241.1.6.0

增加蚂蚁线控件AntLine,支持设置两种颜色(ARGB),长短,间隔,大小,鼠标操作(左键移动缩放,滚轮缩放,边缘调整大小,限制移动范围),刷新间隔。可变矩形和固定矩形等

为PictureBox控件增加内置AntLine控件,可由pictureBox1.AntLine.Visible = true;启用,

可实现两个PictureBox联动,一个使用蚂蚁线框选范围,由另一个PictureBox放大显示蚂蚁线内图像,例子可查看【PictureBox蚂蚁线联动】

20261025
1.1.7.0

优化控件:VScrollBar和HScrollBar,增加联动功能,拖动一个滚动条时,其他滚动条也会同时联动,例子在【VScrollBar或HScrollBar联动】

,同时使用了VScrollBar和HScrollBar的其他控件也支持联动,例如在textBox,一个textBox的滚动条被拖动,其他textBox的滚动条也会同步联动,例子在【textBox滚动条联动】

202610261.1.7.1

优化控件:ProgressBarA(支持等待功能)

    修复等待状态绘制进度时覆盖边框的bug,

202610271.1.8.0

优化控件:ProgressBarB与ProgressBarC

增加控件:ProgressBarD,在C的基础上,绘制方式改为贝塞尔曲线

202610291.1.8.1

优化控件:progressBarE

    属性中增加模式一与模式二

        模式一只点亮当前value块

        模式二点亮所有value的路径块

202610301.1.8.2

优化控件:ProgressBarF

    增加bool属性是否绘制中心圆环

优化控件:SwitchButton

优化控件:RadioButton

    增加CirclePadding属性,用于设置圆圈距离控件边缘的边距(像素)。

    增加RingThickness属性,用于设置圆环边框的线条粗细(像素)。

202610311.1.8.3

优化控件:ProgressBarA

    增加进度模式,模式二为带圆角的中心进度

    增加等待模式,模式二为左右往返

优化控件:CheckBox

优化控件:ButtonA

优化控件:ButtonB
































特别说明

DPI导致字体模糊,可开启PerMonitorV2,

在App.config中配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
  </startup>
  
  <System.Windows.Forms.ApplicationConfigurationSection>
    <add key="DpiAwareness" value="PerMonitorV2" />
  </System.Windows.Forms.ApplicationConfigurationSection>
</configuration>





使用例子

调用ArgbColorEditor
//Color? picked = ArgbColorDialog.Show(Color.Pink);//默认颜色
Color? picked = ArgbColorDialog.Show();

if (picked.HasValue)
{
	Console.WriteLine($"A={picked.Value.A}, R={picked.Value.R}, G={picked.Value.G}, B={picked.Value.B}");
}
else
{
	Console.WriteLine("用户取消了选择");
}
PictureBox蚂蚁线联动
        private void button1_Click_2(object sender, EventArgs e)
        {
            pictureBox1.AntLine.Visible = true;
            pictureBox1.AntLine.WheelZoomEnabled = true;
            pictureBox1.AntLine.FixedSize = true;
            pictureBox1.AntLine.AntRectMoved += AntLine_Changed;
            pictureBox1.AntLine.AntRectResized += AntLine_Changed;

        }        /// <summary>
        /// 蚂蚁线发生变化时,更新 pictureBox2 的画面
        /// </summary>
        private void AntLine_Changed(object sender, EventArgs e)
        {            // 1. 获取当前蚂蚁线矩形
            Rectangle antRect = pictureBox1.AntLine.AntRect;            // 2. 如果蚂蚁线为空,或者太小(比如小于 2x2 像素),清空 pictureBox2
            if (antRect.IsEmpty || antRect.Width < 2 || antRect.Height < 2)
            {
                pictureBox2.Image?.Dispose();                return;
            }            // 3. 调用之前写好的方法,从 pictureBox1 中截取蚂蚁线内的真实图像
            Bitmap newBmp = pictureBox1.GetImageInRectangle(antRect);            // 4. 如果没有截取到有效图像,直接返回
            if (newBmp == null)
            {                // 注意:如果矩形还在拖动中,偶尔返回 null 是正常的(比如拖出了原图范围)
                return;
            }            // 5. 【关键】释放 pictureBox2 原有的图像,防止内存泄漏(GDI+ 对象暴增)
            if (pictureBox2.Image != null)
            {                var oldImage = pictureBox2.Image;
                pictureBox2.Image = null; // 先置空解除绑定
                oldImage.Dispose();       // 再释放资源
            }            // 6. 赋上新的图像
            pictureBox2.Image = newBmp;
        }
VScrollBar或HScrollBar联动
            vScrollBar1.Linkage.Add(vScrollBar2);//执行此命令后,vScrollBar1的value被改变时,会设置vScrollBar2的value
【textBox滚动条联动】
            textBox1._hScrollBar.Linkage.Add(textBox2._hScrollBar);//横向滚动条联动
            textBox1._vScrollBar.Linkage.Add(textBox2._vScrollBar);//纵向滚动条联动





转载请注明出处。

本文链接:http://www.pythonopen.com/?id=184

相关文章

已经实现的一些算法

编码CConA1是一种可复原的编码算法,用于将文本或字节转换为纯字母。可用于文件名混淆,避免因包含违...

横向滚动条HScrollBar 控件调用文档

命名空间:CConUI继承:System.Windows.Forms.Control版本:基于所提供...

纵向滚动条VScrollBar 控件调用文档

命名空间:CConUI继承:System.Windows.Forms.Control版本:基于所提供...

菜单MenuItem 与 ContextMenu 控件调用文档

命名空间:CConUI依赖:System.Windows.Forms、System.Drawing、...

图片框PictureBox 控件调用文档

命名空间:CConUI继承:System.Windows.Forms.Control定位:自绘图片框...

蚂蚁线AntLine 控件调用文档

命名空间:CConUI继承:System.Windows.Forms.Control定位:虚线蚂蚁线...