Giter VIP home page Giter VIP logo

sunnyui's Introduction

SunnyUI

star fork

欢迎交流,QQ群: 56829229 (SunnyUI技术交流群),请给源码项目点个Star吧!!!
个人学习交流免费,商业应用需要授权,联系QQ:17612584 咨询授权事宜。

感谢码云

GVP

特别声明

SunnyUI.Net项目已加入dotNET China 组织。
dotnetchina

软件介绍

  • SunnyUI.NET 是基于.NET Framework 4.0+、.NET6、.NET7、.NET8 框架的 C# WinForm 开源控件库、工具类库、扩展类库、多页面开发框架。
  • 源码编译环境:
    1. VS2022 17.4,安装.NetFramework4.0目标包的方法见:https://www.cnblogs.com/yhuse/p/15536393.html
  • 动态库应用环境: VS2010及以上均可,支持.Net Framework 4.0+、.Net 6、.Net7
    1. 推荐通过Nuget安装:Install-Package SunnyUI,或者通过Nuget搜索SunnyUI安装。
    2. 不支持(.Net Framework 4 Client Profile)。

软件框架

思维导图

支持开源

  • 希望SunnyUI对您有用,您的支持也是SunnyUI开源的动力,SunnyUI有您更精彩! 感谢您的支持
  • 感谢老板打赏,来杯咖啡提提神,写代码更有劲头!~

1、开源控件库

  • 基于.Net Framework4.0,原生控件开发,参考 Element主题风格,包含 按钮、编辑框、下拉框、数据表格、工控仪表、统计图表在内的常用控件超过 70 个,满足常规开发需求,每个控件都精雕细琢,注重细节;
  • 包含 Element 风格主题 11 个,其他主题 6 个,可通过多彩主题模式自定义主题。包含主题管理组件 UIStyleManager,可自由切换主题。

输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明

2、工具库

  • 收集整理开发过程中经常用到的工具类库。

3、扩展库

  • 收集整理开发过程中经常用到的扩展类库。

4、多页面框架

  • 参考Element,包括7种常用框架风格,只需几行简单的代码即可创建多页面程序,其支撑组件包括UIForm,UIPage,UIFrame,集合常用控件库即可快速开发WinForm应用程序。 输入图片说明

项目说明

  • 个人学习交流免费,商业应用需要授权。个人承接外包项目、个人开发商业项目等,公司内部使用、开发项目等均属于商业应用范畴。联系QQ:17612584 咨询授权事宜。
  • 禁止使用SunnyUI控件库开发违法应用,或使用从事其他非法目的违法犯罪行为。因此产生的法律责任与SunnyUI无关。

sunnyui's People

Contributors

asuper0 avatar chenliang624 avatar chriscatcp avatar cyuchia avatar dazuo0312 avatar frozleaf avatar hhujpf avatar schr0dingercat avatar xiachuanzhou avatar z0ow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sunnyui's Issues

窗口大尺寸图标存在BUG

当给UIAsideMainFrame(推测应该只要是UIFrame及其子类,均存在该问题)的Icon设置一个仅包含256x256的.ico图标时,会在UIForm.cs的860行左右(OnPaint()方法内)报数组越界的错误,导致窗体无法绘制,程序不能运行。

if (ShowIcon && Icon != null)
{
    e.Graphics.DrawImage(Icon.ToBitmap(), 6, (TitleHeight - 24) / 2, 24, 24);
}

但如果该.ico文件是一个包含多个尺寸的图标文件,例如:我使用了包含48x48,64x64,128x128,256x256的.ico文件,48x48在最末尾,那么这里base.Icon的尺寸即为48x48,不会报错。
在原生的Windows.Form中,即使单使用256的图标也不会有问题,反编译了一下代码看了看,在绘制图标时会放缩图标,故未报错。

多个屏幕下,主窗体无法最大化

有两个屏幕,主屏幕是笔记本1080P分辨率,第二屏幕为2k分辨率的显示器。
在Extend 模式下:
程序在笔记本上运行后,可以满屏(1080P),但是拖拽到2K分辨率屏幕后,窗口大小依然保持1920x1080. 无法最大化到2560x1440.
在 Second screen only模式下,也就是只有一个2K屏幕下,窗体可以最大化。

估计是不是窗体在不同屏幕切换没有考虑到分辨率的变化?
另外测试了原生的窗体,没有出现这个问题。

分离 Charts

我只想用 Charts ,请问有什么办法分离呀?昨天测试一下好像都是关联在一起的。。。

uiDatagridview如何设置单元格可编辑

如题,按照网上设置dagridview单元格可编辑的代码,设置uiDataGridView没有效果,麻烦作者解答下,谢谢。

  uiDataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
  uiDataGridView1.ReadOnly = false;

  uiDataGridView1.BeginEdit(true);

UITextBox handles neither GotFocus nor Enter Events.

SunnyUI 版本2.2.6.0
无法实现当UITextBox控件获得焦点的时候,自动将文字选中的功能。
……
//controls[i].GotFocus += CommonFocusHandler;
controls[i].Enter += CommonFocusHandler;
……
private void CommonFocusHandler(object sender, EventArgs args) {
UITextBox edit = sender as UITextBox;
if (!string.IsNullOrEmpty(edit?.Text)) {
edit?.SelectAll();
//edit.Select(0, edit.Text.Length);
}
}
CommonFocusHandler无论如何都不会进入。

Symbol:字体图标 右边没有按钮?

你好,设置UISymbolButton和UISymbolLabel的属性:
Symbol:字体图标 右边没有按钮?想改一下图标,没法改,请问我这是哪里设置有问题吗?

image

建议部分UI功能可改进

例如窗体Header,只支持移动,但双击最大化、移至屏幕顶部最大化,最大化后拖动header恢复原大小的功能目前好像都不支持,实际使用还是挺影响体验的

Combobox

UIComboBox绑定数据源后,选项颜色问题!

Group chat

Hi admin. I know a lot of people who can't join the group chat because they can't create or don't have a QQ chat account. Can you create a group on discord or telegram so that everyone can exchange more conveniently? I think a lot of people will like this.

UIForm 最小化的 BUG

protected override void OnMouseClick(MouseEventArgs e)
        {
            if (FormBorderStyle == FormBorderStyle.None)
            {
                if (InControlBox)
                {
                    Close();
                    InControlBox = false;
                }

                if (InMinBox)
                {
                    base.WindowState = FormWindowState.Minimized;
                    WindowStateChange?.Invoke(this, FormWindowState.Minimized);
                    InMinBox = false;
                }

                if (InMaxBox)
                {
                    ShowMaximize();
                    InMaxBox = false;
                }
            }
        }

源代码是这么写的,执行 base.WindowState = FormWindowState.Minimized; 之前,会触发窗体大小改变事件,而这时候 WindowState 的值还未赋上,导致最小化到托盘这个功能无法实现。

TextBox的TextAlignment和Style有bug

TextBox文字排列即使设置为middle center,仍然会左对齐。Style设置无效,无论怎么设置都会采用自定义style
另外,建议给TextBox添加调节高度的功能

ChartForm Bug

1)ChartForm在只存在单个数据的时候,会发生异常,源于其内部的一个判断;
2)某些情况下,ChartForm会由于计算X轴时间而发生异常,定位源码,修改如下:
源码内部之前的写法是return new DateTimeInt64(new DateTime(year, month, day+direction, 0, 0, 0)).DoubleValue;
有时候day值会为31号,如果再加上deriction则会报错。

switch (_scaleLevel)
{
default:
if (direction == 1 && month == 1 && day == 1 && hour == 0 && minute == 0 && second == 0)
return date;
else
return new DateTimeInt64(new DateTime(year, 1, 1, 0, 0, 0).AddYears(direction)).DoubleValue;

            case UIDateScaleLevel.Month:
                if (direction == 1 && day == 1 && hour == 0 && minute == 0 && second == 0)
                    return date;
                else
                    return new DateTimeInt64(new DateTime(year, month, 1, 0, 0, 0).AddMonths(direction)).DoubleValue;

            case UIDateScaleLevel.Day:
                if (direction == 1 && hour == 0 && minute == 0 && second == 0)
                    return date;
                else
                    return new DateTimeInt64(new DateTime(year, month, day, 0, 0, 0).AddDays(direction)).DoubleValue;    
                
            case UIDateScaleLevel.Hour:
                if (direction == 1 && minute == 0 && second == 0)
                    return date;
                else
                    return new DateTimeInt64(new DateTime(year, month, day, hour, 0, 0).AddHours(direction)).DoubleValue;

            case UIDateScaleLevel.Minute:
                if (direction == 1 && second == 0)
                    return date;
                else
                    return new DateTimeInt64(new DateTime(year, month, day, hour, minute, 0).AddMinutes(direction)).DoubleValue;

            case UIDateScaleLevel.Second:
                return new DateTimeInt64(new DateTime(year, month, day, hour, minute, second).AddSeconds(direction)).DoubleValue;

            case UIDateScaleLevel.Millisecond:
                return new DateTimeInt64(new DateTime(year, month, day, hour, minute, second, millisecond).AddMilliseconds(direction)).DoubleValue;
        }

richtextbox 字体问题

拖个 richtextbox,啥也别改,直接运行,然后输入内容就可以发现了,字体不一致

图表合并

请问图表能把 Line 和 Bar 合并一起吗?就像系统自己的 Chart 那样,显示柱形图,也可以叠加 Line .

UIComboBox 显示问题

Combobox,点击下拉箭头,弹出下拉框,再次点击下拉箭头,应该收回下拉框,但实际没有收回

支持多选的 Combobox

做不到大佬这么漂亮,只好来求大佬了。可以增加一个支持多选的 Combobox 吗

还有一个功能,我做了 2 天也没实现,DataGridViewLinkColumn 只支持一个 Link,如果有编辑、删除,就只能用 2 个 Column 了,很挫。本来是想重新绘的,一个 Column 中有两个 Link,弄到最后发现,这样不好做权限控制,最好的做法还是实现 列头合并。

现在做 Winform UI 的真的太少太少了,支持大佬!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.