using Bro.Common.Helper;
|
using Bro.Common.Model;
|
using Bro.UI.Model.Winform;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Drawing;
|
using System.Drawing.Design;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace Bro.M071.Process.UI
|
{
|
public class KeyIndicator : ElementBase
|
{
|
[Browsable(false)]
|
public override string ID { get => base.ID; set => base.ID = value; }
|
[Browsable(false)]
|
public override string Name { get => base.Name; set => base.Name = value; }
|
[Browsable(false)]
|
public override Font Font { get => base.Font; set => base.Font = value; }
|
[Browsable(false)]
|
public override int FontDistance { get => base.FontDistance; set => base.FontDistance = value; }
|
[Browsable(false)]
|
public override int Index { get => base.Index; set => base.Index = value; }
|
[Browsable(false)]
|
public override bool IsShowRemark { get => base.IsShowRemark; set => base.IsShowRemark = value; }
|
[Browsable(false)]
|
public override bool IsEnabled { get => base.IsEnabled; set => base.IsEnabled = value; }
|
|
|
//[Category("显示设置")]
|
//[Description("左上/开始点位")]
|
//[TypeConverter(typeof(ComplexObjectConvert))]
|
//[Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
|
//[Browsable(false)]
|
//public CustomizedPoint StartPoint { get; set; } = new CustomizedPoint();
|
|
//[Category("显示设置")]
|
//[Description("显示区域大小")]
|
//[TypeConverter(typeof(ComplexObjectConvert))]
|
//[Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
|
//public CustomizedPoint Size { get; set; } = new CustomizedPoint();
|
|
[Category("显示设置")]
|
[Description("标签显示区域")]
|
[DisplayName("标签显示区域")]
|
public Rectangle DisplayRect { get; set; } = new Rectangle();
|
|
[Browsable(false)]
|
public string Text { get; set; } = "";
|
[Browsable(false)]
|
public bool? ResultState { get; set; } = null;
|
|
public KeyIndicator() { }
|
|
public KeyIndicator(string id, Rectangle rect)
|
{
|
ID = id;
|
DisplayRect = rect;
|
}
|
|
public override object Clone()
|
{
|
return new KeyIndicator()
|
{
|
DisplayRect = this.DisplayRect,
|
};
|
}
|
|
public override void Draw(Graphics g)
|
{
|
g.DrawRectangle(Pen, DisplayRect);
|
RectangleF rectFill = new RectangleF(DisplayRect.X + 1, DisplayRect.Y + 1, DisplayRect.Width - 2, DisplayRect.Height - 2);
|
if (ResultState != null)
|
{
|
var txtSize = g.MeasureString(Text, Font);
|
|
Color backColor = Color.Green;
|
Color foreColor = Color.Black;
|
if (!ResultState.Value)
|
{
|
backColor = Color.Red;
|
foreColor = Color.White;
|
}
|
|
g.DrawString(Text, Font, new SolidBrush(foreColor), (float)(DisplayRect.X + DisplayRect.Width / 2.0 - txtSize.Width / 2.0), (float)(DisplayRect.Y + DisplayRect.Height / 2.0 - txtSize.Height / 2.0));
|
g.FillRectangle(new SolidBrush(Color.FromArgb(55, backColor)), rectFill);
|
}
|
}
|
|
public override string GetDisplayText()
|
{
|
return $"{DisplayRect.X} {DisplayRect.Y} {DisplayRect.Width} {DisplayRect.Height}";
|
}
|
|
public override bool IsIntersect(Rectangle rect)
|
{
|
return false;
|
}
|
|
public override bool IsMouseHover(Point p)
|
{
|
return false;
|
}
|
|
public override bool IsMouseInSide(Point p)
|
{
|
return false;
|
}
|
|
public override void OnKeyDown(object sender, KeyEventArgs e)
|
{
|
}
|
|
public override void OnKeyUp(object sender, KeyEventArgs e)
|
{
|
}
|
|
public override void OnMouseDownWhenNew(Point p)
|
{
|
}
|
|
public override void OnMouseMoveWhenNew(Point p)
|
{
|
}
|
|
public override void OnMouseUpWhenNew(Point p)
|
{
|
}
|
|
public override void Translate(int x, int y)
|
{
|
}
|
|
protected override void DrawResult(Graphics g)
|
{
|
}
|
}
|
}
|