### 2020-12-27 dev更新

------

#### ryControls    V2.1.2012.2701
- *.[改进]IconViewEx控件选中背景颜色支持渐变。
- *.[改进]支持设置IconViewEx控件选中字体颜色。
This commit is contained in:
鑫Intel 2020-12-27 17:02:46 +08:00
parent 6e8d41e3d4
commit 6bc527a8a2
65 changed files with 41431 additions and 1278 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
[Money_Op] [Money_Op]
hwnd=3151110 hwnd=3411152

View File

@ -1,4 +1,4 @@
<root> <root>
<list id="LastUpdateTime" Value="2020/12/18 11:36:12" /> <list id="LastUpdateTime" Value="2020/12/27 16:40:03" />
<list id="UpdateAfterTime" Value="0" /> <list id="UpdateAfterTime" Value="0" />
</root> </root>

View File

@ -859,6 +859,18 @@
热键文本框 热键文本框
</summary> </summary>
</member> </member>
<member name="M:ryControls.HotkeyTextBox.Finalize">
<summary>
</summary>
</member>
<member name="M:ryControls.HotkeyTextBox.PreFilterMessage(System.Windows.Forms.Message@)">
<summary>
</summary>
<param name="m"></param>
<returns></returns>
</member>
<member name="M:ryControls.HotkeyTextBox.OnSizeChanged(System.EventArgs)"> <member name="M:ryControls.HotkeyTextBox.OnSizeChanged(System.EventArgs)">
<summary> <summary>
在控件大小变化时发生 在控件大小变化时发生
@ -931,6 +943,118 @@
使用代码编辑器修改此方法的内容。 使用代码编辑器修改此方法的内容。
</summary> </summary>
</member> </member>
<member name="T:ryControls.IconViewEx">
<summary>
图标列表控件
</summary>
</member>
<member name="M:ryControls.IconViewEx.#ctor">
<summary>
图标列表控件
</summary>
</member>
<member name="P:ryControls.IconViewEx.IconSize">
<summary>
图标大小
</summary>
</member>
<member name="P:ryControls.IconViewEx.TextHeight">
<summary>
文本显示高度(从底部算起)
</summary>
</member>
<member name="P:ryControls.IconViewEx.Icon">
<summary>
默认图标
</summary>
</member>
<member name="P:ryControls.IconViewEx.IsDrawIcon">
<summary>
是否显示图标
</summary>
</member>
<member name="P:ryControls.IconViewEx.IsDrawGridLines">
<summary>
是否显示网格线
</summary>
</member>
<member name="M:ryControls.IconViewEx.OnDrawItem(System.Windows.Forms.DrawListViewItemEventArgs)">
<summary>
画项
</summary>
<param name="e"></param>
</member>
<member name="P:ryControls.IconViewEx.SelectedStartBackColor">
<summary>
选择项的背景开始颜色
</summary>
</member>
<member name="P:ryControls.IconViewEx.SelectedEndBackColor">
<summary>
选择项的背景结束颜色
</summary>
</member>
<member name="P:ryControls.IconViewEx.SelectedBorderColor">
<summary>
选择项的边框颜色
</summary>
</member>
<member name="P:ryControls.IconViewEx.SelectedForeColor">
<summary>
选择项的字体颜色
</summary>
</member>
<member name="M:ryControls.IconViewEx.DrawSelectedBackground(System.Windows.Forms.DrawListViewItemEventArgs,System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
重绘选中时背景
</summary>
</member>
<member name="M:ryControls.IconViewEx.DrawIcon(System.Drawing.Graphics,System.Drawing.Rectangle,System.Drawing.Image,System.Drawing.Color)">
<summary>
重绘图标
</summary>
<param name="g"></param>
<param name="r">区域大小</param>
<param name="image"></param>
<param name="backColor"></param>
<returns></returns>
</member>
<member name="M:ryControls.IconViewEx.DrawText(System.Windows.Forms.DrawListViewItemEventArgs,System.Drawing.Graphics,System.Drawing.Rectangle,System.Int32)">
<summary>
重绘文本
</summary>
</member>
<member name="M:ryControls.IconViewEx.GetFormatFlags(System.Windows.Forms.HorizontalAlignment)">
<summary>
获取文本对齐
</summary>
</member>
<member name="E:ryControls.IconViewEx.HScroll">
<summary>
水平滚动条滚动事件
</summary>
</member>
<member name="E:ryControls.IconViewEx.VScroll">
<summary>
垂直滚动条滚动事件
</summary>
</member>
<member name="M:ryControls.IconViewEx.WndProc(System.Windows.Forms.Message@)">
<summary>
</summary>
<param name="m"></param>
</member>
<member name="T:ryControls.Interface.IItemInfo">
<summary>
列表项
</summary>
</member>
<member name="P:ryControls.Interface.IItemInfo.Image">
<summary>
图标
</summary>
</member>
<member name="T:ryControls.MsgLink"> <member name="T:ryControls.MsgLink">
<summary> <summary>
@ -1624,6 +1748,11 @@
优先使用默认皮肤 优先使用默认皮肤
</summary> </summary>
</member> </member>
<member name="P:ryControls.rySearch.ColorGradient">
<summary>
背景色是否渐变
</summary>
</member>
<member name="P:ryControls.rySearch.BaseColor"> <member name="P:ryControls.rySearch.BaseColor">
<summary> <summary>
按钮基础背景色 按钮基础背景色

File diff suppressed because it is too large Load Diff

View File

@ -859,6 +859,18 @@
热键文本框 热键文本框
</summary> </summary>
</member> </member>
<member name="M:ryControls.HotkeyTextBox.Finalize">
<summary>
</summary>
</member>
<member name="M:ryControls.HotkeyTextBox.PreFilterMessage(System.Windows.Forms.Message@)">
<summary>
</summary>
<param name="m"></param>
<returns></returns>
</member>
<member name="M:ryControls.HotkeyTextBox.OnSizeChanged(System.EventArgs)"> <member name="M:ryControls.HotkeyTextBox.OnSizeChanged(System.EventArgs)">
<summary> <summary>
在控件大小变化时发生 在控件大小变化时发生
@ -931,6 +943,118 @@
使用代码编辑器修改此方法的内容。 使用代码编辑器修改此方法的内容。
</summary> </summary>
</member> </member>
<member name="T:ryControls.IconViewEx">
<summary>
图标列表控件
</summary>
</member>
<member name="M:ryControls.IconViewEx.#ctor">
<summary>
图标列表控件
</summary>
</member>
<member name="P:ryControls.IconViewEx.IconSize">
<summary>
图标大小
</summary>
</member>
<member name="P:ryControls.IconViewEx.TextHeight">
<summary>
文本显示高度(从底部算起)
</summary>
</member>
<member name="P:ryControls.IconViewEx.Icon">
<summary>
默认图标
</summary>
</member>
<member name="P:ryControls.IconViewEx.IsDrawIcon">
<summary>
是否显示图标
</summary>
</member>
<member name="P:ryControls.IconViewEx.IsDrawGridLines">
<summary>
是否显示网格线
</summary>
</member>
<member name="M:ryControls.IconViewEx.OnDrawItem(System.Windows.Forms.DrawListViewItemEventArgs)">
<summary>
画项
</summary>
<param name="e"></param>
</member>
<member name="P:ryControls.IconViewEx.SelectedStartBackColor">
<summary>
选择项的背景开始颜色
</summary>
</member>
<member name="P:ryControls.IconViewEx.SelectedEndBackColor">
<summary>
选择项的背景结束颜色
</summary>
</member>
<member name="P:ryControls.IconViewEx.SelectedBorderColor">
<summary>
选择项的边框颜色
</summary>
</member>
<member name="P:ryControls.IconViewEx.SelectedForeColor">
<summary>
选择项的字体颜色
</summary>
</member>
<member name="M:ryControls.IconViewEx.DrawSelectedBackground(System.Windows.Forms.DrawListViewItemEventArgs,System.Drawing.Graphics,System.Drawing.Rectangle)">
<summary>
重绘选中时背景
</summary>
</member>
<member name="M:ryControls.IconViewEx.DrawIcon(System.Drawing.Graphics,System.Drawing.Rectangle,System.Drawing.Image,System.Drawing.Color)">
<summary>
重绘图标
</summary>
<param name="g"></param>
<param name="r">区域大小</param>
<param name="image"></param>
<param name="backColor"></param>
<returns></returns>
</member>
<member name="M:ryControls.IconViewEx.DrawText(System.Windows.Forms.DrawListViewItemEventArgs,System.Drawing.Graphics,System.Drawing.Rectangle,System.Int32)">
<summary>
重绘文本
</summary>
</member>
<member name="M:ryControls.IconViewEx.GetFormatFlags(System.Windows.Forms.HorizontalAlignment)">
<summary>
获取文本对齐
</summary>
</member>
<member name="E:ryControls.IconViewEx.HScroll">
<summary>
水平滚动条滚动事件
</summary>
</member>
<member name="E:ryControls.IconViewEx.VScroll">
<summary>
垂直滚动条滚动事件
</summary>
</member>
<member name="M:ryControls.IconViewEx.WndProc(System.Windows.Forms.Message@)">
<summary>
</summary>
<param name="m"></param>
</member>
<member name="T:ryControls.Interface.IItemInfo">
<summary>
列表项
</summary>
</member>
<member name="P:ryControls.Interface.IItemInfo.Image">
<summary>
图标
</summary>
</member>
<member name="T:ryControls.MsgLink"> <member name="T:ryControls.MsgLink">
<summary> <summary>
@ -1624,6 +1748,11 @@
优先使用默认皮肤 优先使用默认皮肤
</summary> </summary>
</member> </member>
<member name="P:ryControls.rySearch.ColorGradient">
<summary>
背景色是否渐变
</summary>
</member>
<member name="P:ryControls.rySearch.BaseColor"> <member name="P:ryControls.rySearch.BaseColor">
<summary> <summary>
按钮基础背景色 按钮基础背景色

View File

@ -1900,6 +1900,13 @@
<param name="handle"></param> <param name="handle"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ryCommon.RyFiles.AdminDragEnable(System.IntPtr)">
<summary>
使管理员方式运行时支持拖放
</summary>
<param name="handle"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyFiles.SaveHighQualityImage(System.Drawing.Bitmap,System.String,ryCommon.sType.ImageType)"> <member name="M:ryCommon.RyFiles.SaveHighQualityImage(System.Drawing.Bitmap,System.String,ryCommon.sType.ImageType)">
<summary> <summary>
保存高质量不失真照片 保存高质量不失真照片
@ -2684,6 +2691,12 @@
</summary> </summary>
</member> </member>
<member name="M:ElevatedDragDropManager.AdminDragEnable(System.IntPtr)">
<summary>
使管理员方式运行时支持拖放
</summary>
<param name="hWnd"></param>
</member>
<member name="M:ElevatedDragDropManager.EnableDragDrop(System.IntPtr)"> <member name="M:ElevatedDragDropManager.EnableDragDrop(System.IntPtr)">
<summary> <summary>
使支持拖放属性 使支持拖放属性

View File

@ -1900,6 +1900,13 @@
<param name="handle"></param> <param name="handle"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ryCommon.RyFiles.AdminDragEnable(System.IntPtr)">
<summary>
使管理员方式运行时支持拖放
</summary>
<param name="handle"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyFiles.SaveHighQualityImage(System.Drawing.Bitmap,System.String,ryCommon.sType.ImageType)"> <member name="M:ryCommon.RyFiles.SaveHighQualityImage(System.Drawing.Bitmap,System.String,ryCommon.sType.ImageType)">
<summary> <summary>
保存高质量不失真照片 保存高质量不失真照片
@ -2684,6 +2691,12 @@
</summary> </summary>
</member> </member>
<member name="M:ElevatedDragDropManager.AdminDragEnable(System.IntPtr)">
<summary>
使管理员方式运行时支持拖放
</summary>
<param name="hWnd"></param>
</member>
<member name="M:ElevatedDragDropManager.EnableDragDrop(System.IntPtr)"> <member name="M:ElevatedDragDropManager.EnableDragDrop(System.IntPtr)">
<summary> <summary>
使支持拖放属性 使支持拖放属性

View File

@ -1,4 +1,21 @@
### 2020-12-19 dev 更新 ### 2020-12-27 dev更新
------
#### ryControls V2.1.2012.2701
- *.[改进]IconViewEx控件选中背景颜色支持渐变。
- *.[改进]支持设置IconViewEx控件选中字体颜色。
### 2020-12-21 dev 更新
------
#### ryControls V2.1.2012.1801
- *.[新增]新增IconViewEx控件可以显示图标
- *.[新增]rySearch控件新增ColorGradient按钮渐变属性。
- *.[修复]rySearch控件修复UseDefSkin属性无效的BUG。
- *.[修复]修复ButtonEx按钮渐变可能导致边角颜色不统一的BUG。
#### MyDb V2.1.2012.2001
- *.[新增]RyFiles和ElevatedDragDropManager类新增AdminDragEnable函数,表示在管理员模式下支持拖放操作。
### 2020-12-19 dev 更新
------ ------
#### MyDb V2.1.2012.1901 #### MyDb V2.1.2012.1901
- *.[新增]Hosts类AddHosts函数新增支持判断是否需要更新hosts文件(不写入)。 - *.[新增]Hosts类AddHosts函数新增支持判断是否需要更新hosts文件(不写入)。

View File

@ -31,6 +31,20 @@
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmStart));
System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem("144554545");
System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem("12112");
System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem("1121");
System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem("112");
System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem("12");
System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem("2121");
System.Windows.Forms.ListViewItem listViewItem7 = new System.Windows.Forms.ListViewItem("2112");
System.Windows.Forms.ListViewItem listViewItem8 = new System.Windows.Forms.ListViewItem("1212");
System.Windows.Forms.ListViewItem listViewItem9 = new System.Windows.Forms.ListViewItem("2112");
System.Windows.Forms.ListViewItem listViewItem10 = new System.Windows.Forms.ListViewItem("1212");
System.Windows.Forms.ListViewItem listViewItem11 = new System.Windows.Forms.ListViewItem("2112");
System.Windows.Forms.ListViewItem listViewItem12 = new System.Windows.Forms.ListViewItem("1212");
System.Windows.Forms.ListViewItem listViewItem13 = new System.Windows.Forms.ListViewItem("1244");
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
this.MenuTray = new System.Windows.Forms.ContextMenuStrip(this.components); this.MenuTray = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -41,9 +55,12 @@
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.chromeTabControl1 = new ryControls.ChromeTabControl(); this.chromeTabControl1 = new ryControls.ChromeTabControl();
this.tabPage1 = new System.Windows.Forms.TabPage(); this.tabPage1 = new System.Windows.Forms.TabPage();
this.iconViewEx1 = new ryControls.IconViewEx();
this.hotkeyTextBox1 = new ryControls.HotkeyTextBox();
this.MenuTray.SuspendLayout(); this.MenuTray.SuspendLayout();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.chromeTabControl1.SuspendLayout(); this.chromeTabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// notifyIcon1 // notifyIcon1
@ -130,6 +147,8 @@
// //
// tabPage1 // tabPage1
// //
this.tabPage1.Controls.Add(this.hotkeyTextBox1);
this.tabPage1.Controls.Add(this.iconViewEx1);
this.tabPage1.Location = new System.Drawing.Point(1, 29); this.tabPage1.Location = new System.Drawing.Point(1, 29);
this.tabPage1.Name = "tabPage1"; this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3); this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
@ -138,6 +157,52 @@
this.tabPage1.Text = "首页"; this.tabPage1.Text = "首页";
this.tabPage1.UseVisualStyleBackColor = true; this.tabPage1.UseVisualStyleBackColor = true;
// //
// iconViewEx1
//
this.iconViewEx1.HideSelection = false;
this.iconViewEx1.Icon = ((System.Drawing.Image)(resources.GetObject("iconViewEx1.Icon")));
this.iconViewEx1.IconSize = 64;
this.iconViewEx1.IsDrawGridLines = false;
this.iconViewEx1.IsDrawIcon = true;
this.iconViewEx1.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
listViewItem1,
listViewItem2,
listViewItem3,
listViewItem4,
listViewItem5,
listViewItem6,
listViewItem7,
listViewItem8,
listViewItem9,
listViewItem10,
listViewItem11,
listViewItem12,
listViewItem13});
this.iconViewEx1.Location = new System.Drawing.Point(161, 88);
this.iconViewEx1.MultiSelect = false;
this.iconViewEx1.Name = "iconViewEx1";
this.iconViewEx1.OwnerDraw = true;
this.iconViewEx1.SelectedBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(229)))), ((int)(((byte)(195)))), ((int)(((byte)(101)))));
this.iconViewEx1.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181)))));
this.iconViewEx1.SelectedStartBackColor = System.Drawing.Color.LightYellow;
this.iconViewEx1.Size = new System.Drawing.Size(451, 341);
this.iconViewEx1.TabIndex = 0;
this.iconViewEx1.TextHeight = 20;
this.iconViewEx1.TileSize = new System.Drawing.Size(100, 100);
this.iconViewEx1.UseCompatibleStateImageBehavior = false;
this.iconViewEx1.View = System.Windows.Forms.View.Tile;
//
// hotkeyTextBox1
//
this.hotkeyTextBox1.BackColor = System.Drawing.Color.White;
this.hotkeyTextBox1.HotKey = "0+0";
this.hotkeyTextBox1.Location = new System.Drawing.Point(85, 124);
this.hotkeyTextBox1.Name = "hotkeyTextBox1";
this.hotkeyTextBox1.Size = new System.Drawing.Size(278, 44);
this.hotkeyTextBox1.T_Key = System.Windows.Forms.Keys.None;
this.hotkeyTextBox1.T_Modifiers = 0;
this.hotkeyTextBox1.TabIndex = 1;
//
// FrmStart // FrmStart
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@ -155,6 +220,7 @@
this.menuStrip1.ResumeLayout(false); this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout(); this.menuStrip1.PerformLayout();
this.chromeTabControl1.ResumeLayout(false); this.chromeTabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@ -172,5 +238,7 @@
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private ryControls.IconViewEx iconViewEx1;
private ryControls.HotkeyTextBox hotkeyTextBox1;
} }
} }

View File

@ -127,6 +127,7 @@ namespace Itrycn_Project2
private void FrmStart_Load(object sender, EventArgs e) private void FrmStart_Load(object sender, EventArgs e)
{ {
RyFiles.AddDropDrag(tabPage1.Handle);
Itrycn_Project.Itrycn_Db.CreateTable(); Itrycn_Project.Itrycn_Db.CreateTable();
LiveUpdate.RyUpdate update = new LiveUpdate.RyUpdate(Soft_Info.Update_Url); LiveUpdate.RyUpdate update = new LiveUpdate.RyUpdate(Soft_Info.Update_Url);
update.CheckUpdate(); update.CheckUpdate();

File diff suppressed because it is too large Load Diff

View File

@ -96,9 +96,9 @@ public class ElevatedDragDropManager : IMessageFilter
private const uint WM_COPYDATA = 0x4a; private const uint WM_COPYDATA = 0x4a;
private const uint WM_COPYGLOBALDATA = 0x49; private const uint WM_COPYGLOBALDATA = 0x49;
private readonly bool IsVistaOrHigher = Environment.OSVersion.Version.Major >= 6; public readonly static bool IsVistaOrHigher = Environment.OSVersion.Version.Major >= 6;
private readonly bool Is7OrHigher = (Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor >= 1) || Environment.OSVersion.Version.Major > 6; public readonly static bool Is7OrHigher = (Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor >= 1) || Environment.OSVersion.Version.Major > 6;
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@ -107,6 +107,27 @@ public class ElevatedDragDropManager : IMessageFilter
Application.AddMessageFilter(this); Application.AddMessageFilter(this);
} }
/// <summary> /// <summary>
/// 使管理员方式运行时支持拖放
/// </summary>
/// <param name="hWnd"></param>
public static void AdminDragEnable(IntPtr hWnd)
{
if (Is7OrHigher)
{
CHANGEFILTERSTRUCT changeStruct = new CHANGEFILTERSTRUCT();
changeStruct.cbSize = Convert.ToUInt32(Marshal.SizeOf(typeof(CHANGEFILTERSTRUCT)));
ChangeWindowMessageFilterEx(hWnd, WM_DROPFILES, ChangeWindowMessageFilterExAction.Allow, ref changeStruct);
ChangeWindowMessageFilterEx(hWnd, WM_COPYDATA, ChangeWindowMessageFilterExAction.Allow, ref changeStruct);
ChangeWindowMessageFilterEx(hWnd, WM_COPYGLOBALDATA, ChangeWindowMessageFilterExAction.Allow, ref changeStruct);
}
else if (IsVistaOrHigher)
{
ChangeWindowMessageFilter(WM_DROPFILES, ChangeWindowMessageFilterFlags.Add);
ChangeWindowMessageFilter(WM_COPYDATA, ChangeWindowMessageFilterFlags.Add);
ChangeWindowMessageFilter(WM_COPYGLOBALDATA, ChangeWindowMessageFilterFlags.Add);
}
}
/// <summary>
/// 使支持拖放属性 /// 使支持拖放属性
/// </summary> /// </summary>
/// <param name="hWnd"></param> /// <param name="hWnd"></param>

View File

@ -885,6 +885,15 @@ namespace ryCommon
return ElevatedDragDropManager.Instance; return ElevatedDragDropManager.Instance;
} }
/// <summary> /// <summary>
/// 使管理员方式运行时支持拖放
/// </summary>
/// <param name="handle"></param>
/// <returns></returns>
public static void AdminDragEnable(IntPtr handle)
{
ElevatedDragDropManager.AdminDragEnable(handle);
}
/// <summary>
/// 保存高质量不失真照片 /// 保存高质量不失真照片
/// </summary> /// </summary>
/// <param name="m"></param> /// <param name="m"></param>

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: : // 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.1.2012.1901")] [assembly: AssemblyVersion("2.1.2012.2001")]
[assembly: AssemblyFileVersion("2.1.2012.1901")] [assembly: AssemblyFileVersion("2.1.2012.2001")]

Binary file not shown.

Binary file not shown.

View File

@ -701,7 +701,7 @@ namespace ryControls
// rectTop.Width = (int)(rect.Width * basePosition); // rectTop.Width = (int)(rect.Width * basePosition);
} }
using (GraphicsPath pathTop = Drawing.CreatePath( using (GraphicsPath pathTop = Drawing.CreatePath(
rectTop, roundWidth, RoundStyle.Top, false)) rectTop, roundWidth, style, false))
{ {
if (ColorGradient) if (ColorGradient)
{ {

View File

@ -12,7 +12,7 @@ namespace ryControls
/// <summary> /// <summary>
/// 热键文本框 /// 热键文本框
/// </summary> /// </summary>
public partial class HotkeyTextBox : UserControl public partial class HotkeyTextBox : UserControl,IMessageFilter
{ {
Keys m_Modifiers =Keys.None; Keys m_Modifiers =Keys.None;
Keys m_Key =Keys.None; Keys m_Key =Keys.None;
@ -29,10 +29,31 @@ namespace ryControls
TxtHotKey.KeyDown += TxtHotKey_KeyDown; TxtHotKey.KeyDown += TxtHotKey_KeyDown;
TxtHotKey.KeyUp += TxtHotKey_KeyUp; TxtHotKey.KeyUp += TxtHotKey_KeyUp;
TxtHotKey.Top = (Height - TxtHotKey.Height) / 2; TxtHotKey.Top = (Height - TxtHotKey.Height) / 2;
//Application.AddMessageFilter(this);
base.BackColor = Color.White; base.BackColor = Color.White;
} }
/// <summary> /// <summary>
///
/// </summary>
~HotkeyTextBox()
{
// Application.RemoveMessageFilter(this);
}
/// <summary>
///
/// </summary>
/// <param name="m"></param>
/// <returns></returns>
public bool PreFilterMessage(ref Message m)
{
//if (m.Msg == 0x0100)
//{
// var key=(Keys)(m.WParam.ToInt32());
// return false;
//}
return false;
}
/// <summary>
/// 在控件大小变化时发生 /// 在控件大小变化时发生
/// </summary> /// </summary>
/// <param name="e"></param> /// <param name="e"></param>

View File

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace ryControls.Interface
{
/// <summary>
/// 列表项
/// </summary>
public interface IItemInfo
{
/// <summary>
/// 图标
/// </summary>
Image Image { get; set; }
}
}

View File

@ -0,0 +1,318 @@
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace ryControls
{
/// <summary>
/// 图标列表控件
/// </summary>
public class IconViewEx : ListView
{
private ColumnHeader columnHeader1;
/// <summary>
/// 图标列表控件
/// </summary>
public IconViewEx() :
base()
{
// 开启双缓冲
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
this.OwnerDraw = true;//用于启用重绘
this.View = View.Tile;
this.TileSize = new Size(100,100);
this.MultiSelect = false;
}
private int iconsize = 64;
/// <summary>
/// 图标大小
/// </summary>
[Description("图标大小")]
public int IconSize {
get { return iconsize; }
set
{
if(value>14 && value<=512)
{
iconsize = value;
}
else { iconsize = 64; }
}
}
private int textheight = 20;
/// <summary>
/// 文本显示高度(从底部算起)
/// </summary>
[Description("文本显示高度(从底部算起)")]
public int TextHeight
{
get { return textheight; }
set
{
if (value > 5 && value <= 100)
{
textheight = value;
}
else { textheight = 20; }
}
}
/// <summary>
/// 默认图标
/// </summary>
[Description("默认图标")]
public Image Icon { get; set; }
/// <summary>
/// 是否显示图标
/// </summary>
[Description("是否显示图标")]
public bool IsDrawIcon { get; set; } = true;
/// <summary>
/// 是否显示网格线
/// </summary>
[Description("是否显示网格线")]
public bool IsDrawGridLines { get; set; }
/// <summary>
/// 画项
/// </summary>
/// <param name="e"></param>
protected override void OnDrawItem(DrawListViewItemEventArgs e)
{
Rectangle r = e.Bounds;
Graphics g = e.Graphics;
DrawSelectedBackground(e, g, r);
int paddingHeight = 0;
if (IsDrawIcon)
{
var soft = (Interface.IItemInfo)e.Item.Tag;
if (soft == null || soft.Image == null)
{ paddingHeight = this.DrawIcon(g, r, this.Icon, e.Item.BackColor).Height; }
else
{
paddingHeight = this.DrawIcon(g, r, soft.Image, e.Item.BackColor).Height;
}
}
//if (IsDrawGridLines)
//{
// using (Pen pen = new Pen(Color.Gray))
// {
// g.DrawRectangle(pen, r.X, r.Y, r.Width, r.Height + 1);//高度加1使横向线条重叠
// }
//}
if (!string.IsNullOrEmpty(e.Item.Text))
{
this.DrawText(e, g, r, paddingHeight);
}
}
private Color _SelectedStartBackColor = Color.FromArgb(255, 251, 237);
/// <summary>
/// 选择项的背景开始颜色
/// </summary>
[Description("选择项的背景开始颜色")]
public Color SelectedStartBackColor
{
get
{
return _SelectedStartBackColor;
}
set
{
_SelectedStartBackColor = value;
this.Refresh();
}
}
private Color _SelectedEndBackColor = Color.FromArgb(255, 236, 181);
/// <summary>
/// 选择项的背景结束颜色
/// </summary>
[Description("选择项的背景结束颜色")]
public Color SelectedEndBackColor
{
get
{
return _SelectedEndBackColor;
}
set
{
_SelectedEndBackColor = value;
this.Refresh();
}
}
private Color _SelectedBorderColor = Color.FromArgb(229, 195, 101);
/// <summary>
/// 选择项的边框颜色
/// </summary>
[Description("选择项的边框颜色")]
public Color SelectedBorderColor
{
get
{
return _SelectedBorderColor;
}
set
{
_SelectedBorderColor = value;
this.Refresh();
}
}
private Color _SelectedForeColor = Color.Black;
/// <summary>
/// 选择项的字体颜色
/// </summary>
[Description("选择项的字体颜色")]
public Color SelectedForeColor
{
get
{
return _SelectedForeColor;
}
set
{
_SelectedForeColor = value;
this.Refresh();
}
}
/// <summary>
/// 重绘选中时背景
/// </summary>
private void DrawSelectedBackground(DrawListViewItemEventArgs e, Graphics g, Rectangle r)
{
if (e.Item.Selected)
{
//渐变画刷
LinearGradientBrush brush = new LinearGradientBrush(e.Bounds, _SelectedStartBackColor,
_SelectedEndBackColor, LinearGradientMode.Vertical);
//填充区域
//Rectangle borderRect = new Rectangle(r, e.Bounds.Y, e.Bounds.Width - 5, e.Bounds.Height - 2);
e.Graphics.FillRectangle(brush, r);
brush.Dispose();
////画边框
Pen pen = new Pen(_SelectedBorderColor);
Rectangle borderRect = r;
borderRect.Width--;
borderRect.Height--;
e.Graphics.DrawRectangle(pen, borderRect);
pen.Dispose();
//using (SolidBrush brush = new SolidBrush(_SelectedBackColor))
//{
// g.FillRectangle(brush, r);
//}
}
}
/// <summary>
/// 重绘图标
/// </summary>
/// <param name="g"></param>
/// <param name="r">区域大小</param>
/// <param name="image"></param>
/// <param name="backColor"></param>
/// <returns></returns>
private Size DrawIcon(Graphics g, Rectangle r, Image image, Color backColor)
{
var x = r.X + ((r.Width - iconsize) / 2);
var y = r.Y + ((r.Height - textheight - iconsize) / 2);
Rectangle imageBounds = new Rectangle(new Point(x,y), new Size(iconsize, iconsize));
if (image.Width > image.Height)
{
imageBounds.Height =(int)((image.Height/(double)image.Width)* imageBounds.Width);
y += ((iconsize - imageBounds.Height) / 2);
}
else
{
x += ((iconsize - imageBounds.Width) / 2);
imageBounds.Width = (int)((image.Width / (double)image.Height) * imageBounds.Height);
}
imageBounds.X = x;
imageBounds.Y = y;
//imageBounds.X = r.X + (r.Width - imageBounds.Width) / 2;
//使图标不会紧贴着每一列的左上角
//imageBounds.X += 1;
//imageBounds.Y += 1;
g.DrawImage(image, imageBounds);
return imageBounds.Size;
}
/// <summary>
/// 重绘文本
/// </summary>
private void DrawText(DrawListViewItemEventArgs e, Graphics g, Rectangle r, int paddingHeight)
{
TextFormatFlags flags = GetFormatFlags(HorizontalAlignment.Center);
var r1 = new Rectangle(r.Location, r.Size)
{
Y = r.Y + r.Height- textheight,//重绘图标时,文本右移
Height = textheight
};
TextRenderer.DrawText(
g,
e.Item.Text,
e.Item.Font,
r1,
e.Item.Selected ? SelectedForeColor : e.Item.ForeColor,
flags);
}
/// <summary>
/// 获取文本对齐
/// </summary>
private TextFormatFlags GetFormatFlags(
HorizontalAlignment align)
{
TextFormatFlags flags =
TextFormatFlags.EndEllipsis |
TextFormatFlags.VerticalCenter;
switch (align)
{
case HorizontalAlignment.Center:
flags |= TextFormatFlags.HorizontalCenter;
break;
case HorizontalAlignment.Right:
flags |= TextFormatFlags.Right;
break;
case HorizontalAlignment.Left:
flags |= TextFormatFlags.Left;
break;
}
return flags;
}
const int WM_HSCROLL = 0x0114;
const int WM_VSCROLL = 0x0115;
/// <summary>
/// 水平滚动条滚动事件
/// </summary>
[Description("水平滚动条滚动事件")]
public event EventHandler HScroll;
/// <summary>
/// 垂直滚动条滚动事件
/// </summary>
[Description("垂直滚动条滚动事件")]
public event EventHandler VScroll;
/// <summary>
///
/// </summary>
/// <param name="m"></param>
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_HSCROLL)
{
HScroll?.Invoke(this, new EventArgs());
}
else if (m.Msg == WM_VSCROLL)
{
VScroll?.Invoke(this, new EventArgs());
}
base.WndProc(ref m);
}
}
}

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

View File

@ -70,6 +70,7 @@
this.btnSearch.Radius = 12; this.btnSearch.Radius = 12;
this.btnSearch.RoundStyle = ryControls.RoundStyle.Right; this.btnSearch.RoundStyle = ryControls.RoundStyle.Right;
this.btnSearch.Size = new System.Drawing.Size(36, 23); this.btnSearch.Size = new System.Drawing.Size(36, 23);
this.btnSearch.SpliteButtonWidth = 0;
this.btnSearch.TabIndex = 4; this.btnSearch.TabIndex = 4;
this.btnSearch.TabStop = false; this.btnSearch.TabStop = false;
this.btnSearch.UseVisualStyleBackColor = true; this.btnSearch.UseVisualStyleBackColor = true;

View File

@ -140,9 +140,27 @@ namespace ryControls
set set
{ {
_UseDefSkin = value; _UseDefSkin = value;
btnSearch.UseDefSkin = _UseDefSkin;
base.Invalidate(); base.Invalidate();
} }
} }
/// <summary>
/// 背景色是否渐变
/// </summary>
[DefaultValue(false)]
[Description("背景色是否渐变")]
public bool ColorGradient
{
get { return btnSearch.ColorGradient; }
set
{
if (value != btnSearch.ColorGradient)
{
btnSearch.ColorGradient = value;
}
}
}
private Color _baseColor = Color.FromArgb(12, 125, 182);//基颜色 private Color _baseColor = Color.FromArgb(12, 125, 182);//基颜色
/// <summary> /// <summary>
///按钮基础背景色 ///按钮基础背景色
@ -153,23 +171,24 @@ namespace ryControls
{ {
get get
{ {
if (SkinCommon.UseDefSkin && UseDefSkin) //if (SkinCommon.UseDefSkin && UseDefSkin)
{ //{
return SkinCommon.ButtonSkin.BackColor; // return SkinCommon.ButtonSkin.BackColor;
} //}
return _baseColor; return _baseColor;
} }
set set
{ {
_baseColor = value; _baseColor = value;
if (SkinCommon.UseDefSkin && UseDefSkin)
{
btnSearch.BaseColor = SkinCommon.ButtonSkin.BackColor;
}
else
{
btnSearch.BaseColor = _baseColor; btnSearch.BaseColor = _baseColor;
} //if (SkinCommon.UseDefSkin && UseDefSkin)
//{
// btnSearch.BaseColor = SkinCommon.ButtonSkin.BackColor;
//}
//else
//{
// btnSearch.BaseColor = _baseColor;
//}
} }
} }
private string _text = ""; private string _text = "";

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: : // 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.1.2012.1801")] [assembly: AssemblyVersion("2.1.2012.2701")]
[assembly: AssemblyFileVersion("2.1.2012.1801")] [assembly: AssemblyFileVersion("2.1.2012.2701")]

View File

@ -108,6 +108,10 @@
<Compile Include="Controls\LableX.Designer.cs"> <Compile Include="Controls\LableX.Designer.cs">
<DependentUpon>LableX.cs</DependentUpon> <DependentUpon>LableX.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Controls\List\IconViewEx.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\List\IItemInfo.cs" />
<Compile Include="Controls\MsgLink.cs"> <Compile Include="Controls\MsgLink.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
@ -358,6 +362,9 @@
<EmbeddedResource Include="Controls\Hotkey\HotkeyTextBox.resx"> <EmbeddedResource Include="Controls\Hotkey\HotkeyTextBox.resx">
<DependentUpon>HotkeyTextBox.cs</DependentUpon> <DependentUpon>HotkeyTextBox.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Controls\List\IconViewEx.resx">
<DependentUpon>IconViewEx.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\MsgLink.resx"> <EmbeddedResource Include="Controls\MsgLink.resx">
<DependentUpon>MsgLink.cs</DependentUpon> <DependentUpon>MsgLink.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>