using System;
|
using System.ComponentModel;
|
using System.ComponentModel.Design;
|
using System.Drawing;
|
using System.Windows.Forms;
|
using System.Windows.Forms.Design;
|
|
namespace DPumpHydr.WinFrmUI.WenSkin.Controls
|
{
|
[Designer(typeof(WenUserControlDesigner))]
|
public class WenUserControl : UserControl
|
{
|
|
public WenUserControl()
|
{
|
base.SetStyle(
|
ControlStyles.UserPaint |
|
ControlStyles.DoubleBuffer |
|
ControlStyles.OptimizedDoubleBuffer |
|
ControlStyles.AllPaintingInWmPaint |
|
ControlStyles.ResizeRedraw |
|
ControlStyles.SupportsTransparentBackColor, true);
|
base.UpdateStyles();
|
|
BackColor = Color.FromArgb(37, 37, 38);
|
}
|
|
private Color backColor = Color.FromArgb(37, 37, 38);
|
private Color foreColor = Color.White;
|
|
|
[Category("Wen")]
|
[Description("用户控件图标")]
|
[DefaultValue(null)]
|
public Icon Icon { get; set; }
|
|
[Category("Wen")]
|
[Description("当前用户控件信息")]
|
[Bindable(true)]
|
[Browsable(true)]
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
[EditorBrowsable(EditorBrowsableState.Always)]
|
public override string Text { get => base.Text; set => base.Text = value; }
|
|
[DefaultValue(typeof(Color), "White"), Category("WenColor"), Description("前景色")]
|
public override Color ForeColor
|
{
|
get => foreColor;
|
set
|
{
|
foreColor = value;
|
base.ForeColor = value;
|
this.Invalidate();
|
}
|
}
|
|
[DefaultValue(typeof(Color), "Transparent"), Category("WenColor"), Description("背景色")]
|
public override Color BackColor
|
{
|
get => this.backColor;
|
set
|
{
|
//若为系统颜色改为酷黑色
|
if (value == System.Drawing.SystemColors.Control)
|
{
|
value = Color.Transparent;
|
}
|
base.BackColor = value;
|
this.backColor = value;
|
this.Invalidate();
|
}
|
}
|
|
|
protected override void OnLoad(EventArgs e)
|
{
|
base.OnLoad(e);
|
if (Icon == null)
|
{
|
Icon = WenSkin.Properties.Resources.logo;
|
}
|
}
|
|
#region 消息提示框
|
/// <summary>
|
/// 消息
|
/// </summary>
|
/// <param name="text"></param>
|
/// <returns></returns>
|
public bool MsgBoxInformation(string text)
|
{
|
var m = new MsgBox(text, MsgBox.MsgBoxIcon.Info).ShowDialog();
|
if (m == DialogResult.OK)
|
return true;
|
else
|
return false;
|
}
|
/// <summary>
|
/// 提醒
|
/// </summary>
|
/// <param name="text"></param>
|
/// <returns></returns>
|
public bool MsgBoxAsterisk(string text)
|
{
|
var m = new MsgBox(text, MsgBox.MsgBoxIcon.Asterisk).ShowDialog();
|
if (m == DialogResult.OK)
|
return true;
|
else
|
return false;
|
}
|
/// <summary>
|
/// 警告
|
/// </summary>
|
/// <param name="text"></param>
|
/// <returns></returns>
|
public bool MsgBoxWarning(string text)
|
{
|
var m = new MsgBox(text, MsgBox.MsgBoxIcon.Warning).ShowDialog();
|
if (m == DialogResult.OK)
|
return true;
|
else
|
return false;
|
}
|
/// <summary>
|
/// 错误
|
/// </summary>
|
/// <param name="text"></param>
|
/// <returns></returns>
|
public bool MsgBoxError(string text)
|
{
|
var m = new MsgBox(text, MsgBox.MsgBoxIcon.Error).ShowDialog();
|
if (m == DialogResult.OK)
|
return true;
|
else
|
return false;
|
}
|
#endregion
|
}
|
internal class WenUserControlDesigner : ControlDesigner
|
{
|
|
private DesignerActionListCollection designer;
|
|
public override DesignerActionListCollection ActionLists
|
{
|
get
|
{
|
if (designer is null)
|
{
|
designer = new DesignerActionListCollection
|
{
|
new DesignerActionList(this.Component)
|
{
|
AutoShow=true,
|
}
|
};
|
designer.Add(new WenUserControlActionList(this));
|
}
|
return designer;
|
}
|
}
|
public override void DoDefaultAction()
|
{
|
base.DoDefaultAction();
|
}
|
}
|
internal class WenUserControlActionList : DesignerActionList
|
{
|
public WenUserControlActionList(WenUserControlDesigner designer) : base(designer.Component)
|
{
|
this._designer = designer;
|
}
|
public void Choose()
|
{
|
if (Component is WenUserControl control)
|
{
|
control.Text = "dddd";
|
}
|
}
|
|
public WenUserControl WenUserControl => this.Component != null ? this.Component as WenUserControl : null;
|
|
public string Text { get => WenUserControl.Text; set => WenUserControl.Text = value; }
|
|
public Icon Icon { get => WenUserControl.Icon; set => WenUserControl.Icon = value; }
|
public override DesignerActionItemCollection GetSortedActionItems()
|
{
|
|
////类型
|
//DesignerActionPropertyItem designer = new DesignerActionPropertyItem("Icon", "Text");
|
////linkLalbe
|
//DesignerActionMethodItem designer2 = new DesignerActionMethodItem(this, "Choose", "fasdf");
|
////Header
|
//DesignerActionHeaderItem designer1 = new DesignerActionHeaderItem("dddd");
|
////Text
|
//DesignerActionTextItem designer3 = new DesignerActionTextItem("asdf", "Icon");
|
|
DesignerActionPropertyItem icon = new DesignerActionPropertyItem("Icon", "图标");
|
DesignerActionPropertyItem text = new DesignerActionPropertyItem("Text", "文本");
|
|
|
return new DesignerActionItemCollection() { icon, text };
|
|
}
|
private WenUserControlDesigner _designer;
|
}
|
|
}
|