C# WinForm开发系列 - Open-Source Controls

简介:

    整理了一些在WinForm开发中可以使用的开源组件.(文章及相关代码搜集自网络,仅供学习参考,版权属于原作者! ).

 

1. 仿office 2007的Ribbon风格面板(该控件模仿office 2007的Ribbon风格,显示操作面板。)

2. .NET中最全功能的表格控件

[翻译]

Mathew Hall.著XPTable - .NET ListView meets Java's JTable


[简介]

由于项目需要,我需要定制一个ListView,它必须能够在列中插入图像、下拉框、可上下调整的数字、进度条等等。由于已经有了一个Java下的背景,我将简单地基于那个JTable封装。


[功能]

全定制可视化界面
支持XP风格
轻易添加再定制的控件
可隐藏列
行、列、单元可以被Disable
每个单元、列可以有Tooltip
等等……


[XPTable]

XPTable包含下面的组件:
1. Table,
2. ColumnModel 和它的 Columns,
3. TableModel 和它的 Row 和 Cell,
4. Renderer
5. Editor

3.OpenTheme一个开源的用户图形界面(GUI)工具包

[翻译]

weiqj.著OpenTheme : An open source graphic user interface (GUI) toolkit

[简介]

OpenTheme是一个基于XML的GUI工具包,它包括一系列基础类和WYSIWYG 编辑器。尽管,它最初的设计是用于全屏GUI的,不过完全适用Windows用户界面。

另外,我给大家准备了一个完全的入门教程

image

4.一个XP和Vista风格的Outlook工具栏控件

[翻译]
Jan Geerinckx著Rich OutlookBar in XP and Vista style


Outlook工具栏控件


[开发环境]
VB
.NET 

[简介]
本文中的控件将实现一个XP和Vista风格的Outlook工具栏控件。

[基本结构]

控件中有三个类:

OutlookBarButton类
该类实现了单个的Button实例,其中绘图不包括在这里。
基本成员如下:
Text:如果按钮作为大的按钮显示的时候,文字会显示在上面。如果,按钮显示在最下方,作为小的按钮显示,这些文字会作为Tooltip显示。
Visible:指示按钮是否可见,可以在运行过程中,动态地设置。
Allowed:当设置为False时,这个按钮不可见。在运行的时候,你不可以访问它,可以阻止特定的用户只允许访问特定按钮。
Image:显示在按钮上的图片。最好是24x24或更大的图标。
Rectangle:只在assembly可设。

OutlookBarButtonCollection类

它继承于CollectionBase,是上述Button的集合。

 

5.使用Vista风格的控件.NET 2.0

翻译

Pedro M. C. Cardoso著Vista Controls

简介

Vista控件集(Vista Controls)是一个于微软Windows Vista操作系统下提供新样式控件的一个库。

如果你在.NET 2.0的应用程序中使用了 System.Windows.Forms程序集中的树状图Treeview,列表视图Listview, 打开文件对话框OpenFileDialog, 保存文件对话框SaveFileDialog 和目录浏览对话框FolderBrowserDialog,当你的程序运行于Vista下面的时候,你会发现你的程序风格并没有任何变化,并没有自动调用新的Vista界面风格,还是以前的Windows XP的风格。

在Vista Controls中,你将发现有五个代替的类,它们将使得运行在Vista下面的程序看上去是Vista的样子,而如果你在早期的Windows系统中使用这些程序时,还是以前的风格。这就给你减轻了很大的工作量,很容易你的程序就可以同时适应Vista和以前版本Windows了。

另外,Vista控件集包括了一个新加入Vista的控件:Command Link。因为这个控件在早期的Windows中并不存在,所以当程序运行在这些Windows系统中时,它会模仿Vista风格。

控件

常规对话框

打开文件,保存文件和打开目录对话框

 

6.面板控件库 XPanderControls


面板控件库 XPanderControls
作者: Uwe Eichkorn
翻译: [yn]Yuxiang

本文介绍一个可对子控件分组的可扩展面板控件库的使用。
C# (C# 2.0)
Windows (Win2K, WinXP, Vista), .NET (.NET 2.0)
Win32, VS (VS2005)
Dev
发表日期2007-4-13
更新日期2007-9-29 

下载源代码和演示文件(http://www.codeproject.com/useritems/XPanderControls/xpandercontrols.zip) - 177.8 KB

 原文:XPanderControls

译者注:(另外,限于篇幅,译文的大部分插图没有贴上来,请下载译文查看)
(1)在解压缩源代码后,建议把源码文件的只读属性取消,避免在保存时出现警告对话框
(2)在第一次打开解决方案后,需要先生成控件库 BSE.Windows.Forms.dll,否则演示窗体 Form1.cs 不能被打开
(3)在启动调试前,请把 BSE.Windows.Test 项目设置为启动项目
(4)
请注意:在使用 RightToLeft 功能时,在运行时刻,会产生错误(imageList2 控件初始,请参阅下面的相关说明),请关注作者的更新

简介

XPander 控件库提供了把多个用户控件放置在单个容器中的机制。可以随意地显示或隐藏它。 Xpander 控件追随 MS Outlook 的视觉风格。所有控件都支持可视化设计器、智能标记和 RightToLeft 功能。面板的使用与 toolstripenders 相关联,可形成有趣的视觉效果。

面板风格(Panel styles)

在演示项目中,面板的风格可以通过在 tooltrip 中的组合框进行更改。

水溶效果(Aqua effects)

Office2007 效果(Office2007 effects)

在可视化设计器中,面板颜色和属性都是可以定制和改变的。

 

当 RightToLeft 属性值被设置为 RightToLeft.Yes 时,控件元素的水平对齐方式就改变为从右向左。

 

7.Office 2007 Ribbon 风格的按钮和菜单[转载]

翻译

Juan Pablo G.C.著Improved and Recoded RibbonMenuButton

简介

首先,感谢大家。我非常感谢大家对本文的努力给与了高度的评价。我记得当我16岁的那年,我见到了各种各样的软件、应用程序和游戏,而对于我来说,当时根本不可能达到或开发这样的软件。然而,从此以后,我学习了许多,如今,我已经能够很轻易地完成这样的软件。而且,如果我能够帮助谁实现绚丽的应用程序,我决定他们可以自由地使用我的代码。

背景

此前,我一直在考虑如何做一个全定制的按钮,以及改变RGB元素究竟有多么难。我决定做一个能够提供很多操作颜色的类RibbonColor。如果你运行一下demo程序,并移动Hue,SatBrightnessTrackBar,就会很快明白我上面说的。我必须承认接近70%的RibbonControl链接库已经完成。然而,当人们迫切地希望使用改善过的代码,并告诉我我没有对我的代码作很多解释的时候,我决定把自己当作哑巴。:)

 

8.C# WinForm开发系列 - Grid Controls

9.C# WinForm开发系列 - 文章索引(其它一系列控件)

10.免费用户界面控件 Krypton Toolkit 简介

Krypton
简介

Krypton 2.7.1

 Krypton 套件 包含了让开发人员轻松创建专业外观应用程序的用户界面组件。你可以使用内置的模板来完成与工业标准应用程序相同的外观,诸如 Microsoft Office 2007 。你也可以选择构建自己的定制模板来创建十分独特的用户界面。  Krypton 套件 由三个产品组成: Krypton ToolkitKrypton Ribbon 和 Krypton Navigator。(译者注:在安装 Krypton 套件 后,包含了程序集、帮助文档、模板、示例及其源代码,并把程序集中的组件添加到 Visual Studio 2005(或2008)开发环境的工具箱中,同时添加 Krypton Form Project、Krypton ToolStrip Form Project 和 Krypton Ribbon Form Project 项目模板。 Krypton 套件 提供了 Office 2007 蓝色、Office 2007 银色、Office 2007 黑色、Office 2003 、System 等配色模板,易于与 .NET 的工具栏、菜单栏、状态栏等控件组合使用)

下载地址(下载解压缩后只需要安装 KryptonToolkit271.msi): windowsclient.net 上的下载

或者: http://www.componentfactory.com/downloads/KryptonToolkit271.zip


Krypton Toolkit

Krypton Toolkit 提供了一组免费的基础用户界面组件。你可以在自己的产品中分发已签名的 Krypton Toolkit 程序集 ,无需付费或经过许可。如果你想查看或修改源代码,你可以在 Component Factory 网站上购买,请查看页末的链接。

示例界面

11.仿XP资源管理器中的可伸缩面板控件

 

[翻译]
Collapsible Panel control

该控件拥有类似Windows XP 的资源浏览器中左边的可伸缩面板的功能。


[简介]

该控件可以包括多个视图,当你点击面板的标题栏时,它可以自动伸缩下面的面板。你可以自己设置它的标题栏图标、定制伸展/收缩按钮。另外,有几种不同的类型标志,用于定制面板的界面和行为。

当你点击一个面板的时候,你将在主窗口收到WM_COMMAND消息的通知,它会告诉你面板真被伸展还是收缩。当然,你也可以设定不让它自动缩放。

控件还允许自绘图像(ownerdrawn),你可以捕获WM_DRAWITEM消息,然后绘制自己的按钮图像。

由于性能的考虑,控件内部把按钮图像绘制在一个位图中,这样就可以保证迅速地把它显示到界面上。为了防止闪烁,在绘制过程中使用了memory DC

VC++可伸缩面板控件

 

12.一个专业的 Ribbon 控件

 

作者: Jose M. Menendez Poó
翻译: Yuxiang
 发表日期2008-5-8
更新日期2008-5-29

简介

由于在网站上缺少好的免费的 Ribbon 控件,我决定自己编写一个。我分析了以前(包括那些在 CodeProject 上) ribbon 控件的工作机制。很不幸,大多数已有的控件只是差劲的尝试。为什么这样说?因为它们有些缺少好的绘制,有些缺少改变大小的功能,有些几乎是什么都缺。当然,已开发的好的 Ribbon 控件需要付费。这个 ribbon 是免费的。

为什么不使用 WPF?主要的原因是我需要把 Ribbon 添加到已有的 WinForms 应用程序中。依我看来,这不是“不”使用WPF,而是“还没有”使用。无论如何,你可以在WPF 中承载(host) 一个 WinForms 控件(参阅 http://msdn.microsoft.com/en-us/library/ms750944.aspx)。

一些设计目标

实现 — 此 ribbon 包含在一个 Control 窗口中,它内部的每个元素作为控件内部的一系列 bounds 管理,就像 ToolStrip 控件那样。 尽管从 ribboon 的内部代码来管理是困难的,但是这是让它保持最佳实现 ribbon 一种方式。 相信我,下载演示程序,运行它并改变窗体的大小。它完成得很漂亮。

与 Office ribbon 的一致性 — 我曾经读过有关 Jakob Nielsen 讲述的大多数用户更喜欢所使用的程序看起来像 Word, Excel 或 Powerpoint。这相关明显,因为人们每天都使用这些软件。视觉效果与 office 的 ribbon 一致是非常重要的,因为人们已经知道期待什么,并且那是有益的用法。 我尝试让每个 Ribbon 中的元素的外观及行为严格地与 Office 的 ribbon 一致。

易于为程序员使用 — 组件命名与大多数 WinForms 命名系统一致, 更多的使用 ToolStrip 元素。为类似的元素的属性,事件和方法命名就像在 ToolStrip 的工艺项那样。

设计时刻支持 — 我将会添加越来越多的设计时刻支持,因此你可以在设计器中 100% 地管理这个 ribbon。

当我发现 bugs 或者你乐于让我知道它们,我将会提供 更新 和 修正 。

使用 Ribbon

此 ribbon 位于 System.Windows.Forms 命名空间,就像其它控件,我想使用诸如  MyCoolFirm.MyCoolNameSpace.MyCoolSubNameSpace 等的控件命名方式是让人不爽的(请仅为商业对象进行这样的命名)。

你可以添加对已经编译的 dll (System.Windows.Forms.Ribbon.dll )引用,或者你可以直接复制源码文件到你的项目文件夹中。现在代码已设计好,你可以只复制源码文件,不需要任何额外的资源。

快速指南

此 ribbon 主要由三种元素组成:标签(tabs),标签上的面板(panels on the tabs,其他开发人员称它们为组),以及在面板内部的项目(items inside the panels)。

这些元素通过 RibbonTab, RibbonPanel 和 RibbonItem 类型进行表现。 RibbonItem 是一个为任何承载于 RibbonPanel 或 RibbonDropDown 之上的项提供基本功能的抽象类。

你可以使用 Ribbon 的智能标记来添加标签,可以通过选定标签并调用在属性表底部的“Add Panel(添加面板)”动作来添加标签的面板。

Ribbon 上的元素依据可用的 ribbon 空间来调整大小。这是 ribbon 的关键特征。通过调整大小,它试图把所有可用的命令都显示在屏幕上,而不是在溢出的按钮上隐藏它们(就像旧式的 ToolStrip 那样)。

我使用三种尺寸来处理:Large(大), Medium(中等) 和 Compact(紧凑)。一个附加的尺寸用于面板,因为面板可以被折叠,然后它们采用 Overflow 大小模式。

 

13.甘特图绘制组件

 

翻译
Adagio.81. 著Gantt Chart

简介
该组件可以使你简单地把甘特图加入你的应用程序。你只需要3行代码就可以做到了。

这个甘特图(Gantt Chart)包括下面的特征
1. 列的宽度自动根据组件的宽度和起始结束时间调整,如果日期之间多于2天,控件只会显示日期,否则还会显示时间。
2. 你可以给每个bar设置颜色
3. 自动显示滚动条
4. 当鼠标停到上面时,自动显示信息
5. 很容易地使用多行提示框文本

 

14.Windows Forms .NET

15.The Code Project (推荐站点, 资源很丰富)


本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2009/06/21/1507880.html,如需转载请自行联系原作者。


目录
相关文章
|
10天前
|
前端开发 JavaScript 安全
C#一分钟浅谈:Blazor WebAssembly 开发
Blazor WebAssembly 是一个客户端框架,允许开发者使用C#和Razor语法构建Web应用。本文介绍了Blazor WebAssembly的基本概念、常见问题及解决方案,包括路由配置、数据绑定、异步操作、状态管理和性能优化等方面的内容,并分享了一些易错点及如何避免的方法。希望这些内容能帮助你在Blazor WebAssembly开发中少走弯路,提高开发效率。
84 51
|
8天前
|
开发框架 缓存 .NET
C# 一分钟浅谈:Blazor Server 端开发
Blazor Server 是基于 ASP.NET Core 的框架,允许使用 C# 和 Razor 语法构建交互式 Web 应用。本文介绍 Blazor Server 的基本概念、快速入门、常见问题及解决方案,帮助开发者快速上手。涵盖创建应用、基本组件、数据绑定、状态管理、跨组件通信、错误处理和性能优化等内容。
22 1
|
9天前
|
缓存 C# 开发者
C# 一分钟浅谈:Blazor Server 端开发
本文介绍了 Blazor Server,一种基于 .NET 的 Web 开发模型,允许使用 C# 和 Razor 语法构建交互式 Web 应用。文章从基础概念、创建应用、常见问题及解决方案、易错点及避免方法等方面详细讲解,帮助开发者快速上手并提高开发效率。
30 2
|
18天前
|
测试技术 Go C#
C#一分钟浅谈:ReSharper 插件增强开发效率
【10月更文挑战第25天】ReSharper 是 JetBrains 开发的一款 Visual Studio 插件,旨在提高 .NET 开发者的生产力。它通过代码分析、重构、导航等功能,帮助开发者避免常见错误,提升代码质量和开发效率。本文将通过具体代码案例,详细介绍 ReSharper 的常见功能及其应用。
35 1
|
24天前
|
C# Python
使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
【10月更文挑战第30天】使用 `wxPython` 开发跨平台桌面应用时,可以通过创建辅助类来模拟 C# 扩展函数的功能。具体步骤包括:1. 创建辅助类 `WxWidgetHelpers`;2. 在该类中定义静态方法,如 `set_button_color`;3. 在应用中调用这些方法。这种方法提高了代码的可读性和可维护性,无需修改 `wxPython` 库即可为控件添加自定义功能。但需要注意显式调用方法和避免命名冲突。
|
1月前
|
JSON C# 开发者
C#语言新特性深度剖析:提升你的.NET开发效率
【10月更文挑战第15天】C#语言凭借其强大的功能和易用性深受开发者喜爱。随着.NET平台的演进,C#不断引入新特性,如C# 7.0的模式匹配和C# 8.0的异步流,显著提升了开发效率和代码可维护性。本文将深入探讨这些新特性,助力开发者在.NET开发中更高效地利用它们。
34 1
|
1月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
1月前
|
设计模式 程序员 C#
C# 使用 WinForm MDI 模式管理多个子窗体程序的详细步骤
WinForm MDI 模式就像是有超能力一般,让多个子窗体井然有序地排列在一个主窗体之下,既美观又实用。不过,也要小心管理好子窗体们的生命周期哦,否则一不小心就会出现一些意想不到的小bug
|
1月前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
77 0
|
1月前
|
XML 存储 安全
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
C#开发的程序如何良好的防止反编译被破解?ConfuserEx .NET混淆工具使用介绍
60 0