You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lj_plc/Controls/Mesnac.Controls.ChemicalWei.../HslAgvCar.cs

234 lines
9.5 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesnac.Controls.ChemicalWeighing
{
/// <summary>
/// Agv小车控件
/// </summary>
// Token: 0x02000004 RID: 4
[Description("Agv 小车控件")]
public class HslAgvCar : UserControl
{
/// <summary>
/// 实例化一个默认的对象
/// </summary>
// Token: 0x0600000C RID: 12 RVA: 0x00010BB4 File Offset: 0x0000EDB4
public HslAgvCar()
{
this.InitializeComponent();
base.SetStyle(ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor, true);
base.SetStyle(ControlStyles.ResizeRedraw, true);
base.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
base.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
}
/// <summary>
/// 获取或设置当前AGV小车的颜色信息
/// </summary>
// Token: 0x17000001 RID: 1
// (get) Token: 0x0600000D RID: 13 RVA: 0x00010C50 File Offset: 0x0000EE50
// (set) Token: 0x0600000E RID: 14 RVA: 0x00010C6D File Offset: 0x0000EE6D
[Browsable(true)]
[Description("获取或设置当前AGV小车的颜色信息")]
[Category("HslControls")]
[DefaultValue(typeof(Color), "Tomato")]
public virtual Color AgvColor
{
get
{
return this.carBrush.Color;
}
set
{
this.carBrush.Color = value;
base.Invalidate();
}
}
/// <summary>
/// 获取或设置当前的轮胎的颜色
/// </summary>
// Token: 0x17000002 RID: 2
// (get) Token: 0x0600000F RID: 15 RVA: 0x00010C84 File Offset: 0x0000EE84
// (set) Token: 0x06000010 RID: 16 RVA: 0x00010C91 File Offset: 0x0000EE91
[Browsable(true)]
[Description("获取或设置当前的轮胎的颜色")]
[Category("HslControls")]
[DefaultValue(typeof(Color), "52, 52, 52")]
public virtual Color TireColor
{
get
{
return this.darkBlack.Color;
}
set
{
this.darkBlack.Color = value;
base.Invalidate();
}
}
/// <summary>
/// 重绘控件的
/// </summary>
/// <param name="e">重绘事件</param>
// Token: 0x06000011 RID: 17 RVA: 0x00010CA8 File Offset: 0x0000EEA8
protected override void OnPaint(PaintEventArgs e)
{
bool flag = true;
if (flag)
{
Graphics graphics = e.Graphics;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
this.PaintHslControls(graphics, base.Width, base.Height);
base.OnPaint(e);
}
}
/// <inheritdoc cref="M:HslControls.HslArrow.PaintHslControls(System.Drawing.Graphics,System.Single,System.Single)" />
// Token: 0x06000012 RID: 18 RVA: 0x00010CF8 File Offset: 0x0000EEF8
public void PaintHslControls(Graphics g, int width, int height)
{
this.PaintMain(g, width, height);
}
// Token: 0x06000013 RID: 19 RVA: 0x00010D20 File Offset: 0x0000EF20
private void PaintMain(Graphics g, int width, int height)
{
int num = (int)((float)height * 0.08f);
bool flag = width < 50 && height < 50;
if (flag)
{
num = (int)((float)height * 0.12f);
}
int num2 = (int)((float)width * 0.04f);
int num3 = (int)((float)width * 0.1f);
GraphicsPath graphicsPath = new GraphicsPath();
graphicsPath.AddArc(new Rectangle(width - num3 - num3 + 1, num, num3 + num3 - 2, num3 + num3 - 2), -90f, 90f);
graphicsPath.AddLine(new Point(width - 1, num + num3), new Point(width - 1, height - num - num3));
graphicsPath.AddArc(new Rectangle(width - num3 - num3 + 1, height - num - num3 - num3, num3 + num3 - 2, num3 + num3), 0f, 90f);
Rectangle rect = new Rectangle(num2, num, width - num2 - num3, height - num - num);
using (LinearGradientBrush linearGradientBrush = new LinearGradientBrush(new PointF(0f, (float)(height - num)), new PointF(0f, (float)num), this.carBrush.Color, HslHelper.GetColorOffset(this.carBrush.Color, height - num)))
{
linearGradientBrush.InterpolationColors = new ColorBlend
{
Positions = new float[]
{
0f,
0.1f,
0.9f,
1f
},
Colors = new Color[]
{
HslHelper.GetColorLight(this.carBrush.Color),
this.carBrush.Color,
this.carBrush.Color,
HslHelper.GetColorLight(this.carBrush.Color)
}
};
g.FillPath(linearGradientBrush, graphicsPath);
g.DrawPath(this.borderPen, graphicsPath);
g.FillRectangle(linearGradientBrush, rect);
g.DrawRectangle(this.borderPen, rect);
using (Pen pen = new Pen(HslHelper.GetColorLight(this.carBrush.Color, -15)))
{
g.DrawLine(pen, new Point(width - num3, num + 1), new Point(width - num3, height - num - 2));
}
}
int num4 = (int)((float)width * 0.12f);
int num5 = (int)((float)width * 0.28f);
Rectangle rect2 = new Rectangle(rect.X + rect.Width / 2 - num5 - num4 / 2, 0, num4, num * 2);
g.FillRectangle(this.darkBlack, rect2);
rect2.X = rect.X + rect.Width / 2 + num5 - num4 / 2;
g.FillRectangle(this.darkBlack, rect2);
rect2.X = rect.X + rect.Width / 2 - num5 - num4 / 2;
rect2.Y = height - rect2.Height;
g.FillRectangle(this.darkBlack, rect2);
rect2.X = rect.X + rect.Width / 2 + num5 - num4 / 2;
g.FillRectangle(this.darkBlack, rect2);
Point point = new Point(rect.X + rect.Width / 2, height / 2);
g.TranslateTransform((float)point.X, (float)point.Y);
int num6 = (int)((float)height * 0.36f);
g.FillEllipse(Brushes.LightGray, new Rectangle(-num6, -num6, num6 + num6, num6 + num6));
g.DrawEllipse(Pens.Gray, new Rectangle(-num6, -num6, num6 + num6, num6 + num6));
num6 = (int)((float)height * 0.33f);
for (int i = 0; i < 6; i++)
{
g.FillPie(this.darkBlack, new Rectangle(-num6, -num6, num6 + num6, num6 + num6), (float)(-115 + 60 * i), 50f);
}
num6 = (int)((float)height * 0.24f);
g.FillEllipse(Brushes.LightGray, new Rectangle(-num6, -num6, num6 + num6, num6 + num6));
num6 = (int)((float)height * 0.04f);
for (int j = 0; j < 4; j++)
{
g.FillEllipse(this.darkBlack, new Rectangle((int)((float)height * 0.16f) - num6, -num6, num6 * 2, num6 * 2));
g.RotateTransform(90f);
}
num6 = (int)((float)height * 0.06f);
g.FillEllipse(this.carBrush, new Rectangle(-num6, -num6, num6 + num6, num6 + num6));
g.TranslateTransform((float)(-(float)point.X), (float)(-(float)point.Y));
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
// Token: 0x06000014 RID: 20 RVA: 0x00011208 File Offset: 0x0000F408
protected override void Dispose(bool disposing)
{
bool flag = disposing && this.components != null;
if (flag)
{
this.components.Dispose();
}
base.Dispose(disposing);
}
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
// Token: 0x06000015 RID: 21 RVA: 0x00011240 File Offset: 0x0000F440
private void InitializeComponent()
{
base.SuspendLayout();
base.AutoScaleMode = AutoScaleMode.None;
this.BackColor = Color.Transparent;
this.Font = new Font("微软雅黑", 9f, FontStyle.Regular, GraphicsUnit.Point, 134);
base.Name = "HslAgvCar";
base.Size = new Size(58, 65);
base.ResumeLayout(false);
}
// Token: 0x0400000B RID: 11
private Color borderColor = Color.Gray;
// Token: 0x0400000C RID: 12
private Pen borderPen = new Pen(Color.Gray, 1f);
// Token: 0x0400000D RID: 13
private SolidBrush carBrush = new SolidBrush(Color.Tomato);
// Token: 0x0400000E RID: 14
private SolidBrush darkBlack = new SolidBrush(Color.FromArgb(52, 52, 52));
/// <summary>
/// 必需的设计器变量。
/// </summary>
// Token: 0x0400000F RID: 15
private IContainer components = null;
}
}