+ UIBarChart:新增ToolTip显示;+ UINavMenu:新增TipsText气泡数字显示
This commit is contained in:
parent
7608291778
commit
d25c38063f
BIN
Bin/SunnyUI.dll
BIN
Bin/SunnyUI.dll
Binary file not shown.
BIN
Bin/SunnyUI.pdb
BIN
Bin/SunnyUI.pdb
Binary file not shown.
Binary file not shown.
Binary file not shown.
1
SunnyUI.Demo/FMain.Designer.cs
generated
1
SunnyUI.Demo/FMain.Designer.cs
generated
@ -45,6 +45,7 @@
|
||||
this.Aside.ItemHeight = 36;
|
||||
this.Aside.LineColor = System.Drawing.Color.Black;
|
||||
this.Aside.ShowOneNode = true;
|
||||
this.Aside.ShowTips = true;
|
||||
this.Aside.Size = new System.Drawing.Size(250, 575);
|
||||
//
|
||||
// Header
|
||||
|
@ -35,6 +35,7 @@ namespace Sunny.UI.Demo
|
||||
Aside.CreateChildNode(parent, 62104, 24, AddPage(new FContextMenuStrip(), ++pageIndex));
|
||||
Aside.CreateChildNode(parent, 61668, 24, AddPage(new FMeter(), ++pageIndex));
|
||||
Aside.CreateChildNode(parent, 62173, 24, AddPage(new FOther(), ++pageIndex));
|
||||
Aside.SetNodeTipsText(parent.Nodes[0],"1");
|
||||
|
||||
pageIndex = 2000;
|
||||
Header.SetNodePageIndex(Header.Nodes[1], pageIndex);
|
||||
|
@ -3,7 +3,9 @@ using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Sunny.UI
|
||||
{
|
||||
@ -64,8 +66,7 @@ namespace Sunny.UI
|
||||
YAxisEnd = end;
|
||||
YAxisInterval = interval;
|
||||
|
||||
float x1 = 100.0f / ((o.XAxis.Data.Count * 2) + o.XAxis.Data.Count + 1);
|
||||
x1 = DrawSize.Width * x1 / 100.0f / o.SeriesCount;
|
||||
float x1 = DrawBarWidth / ((o.SeriesCount * 2) + o.SeriesCount + 1);
|
||||
float x2 = x1 * 2;
|
||||
|
||||
for (int i = 0; i < o.SeriesCount; i++)
|
||||
@ -97,8 +98,21 @@ namespace Sunny.UI
|
||||
barX += DrawBarWidth;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < BarOption.XAxis.Data.Count; i++)
|
||||
{
|
||||
string str = BarOption.XAxis.Data[i];
|
||||
foreach (var series in BarOption.Series)
|
||||
{
|
||||
str += '\n';
|
||||
str += series.Name + " : " + series.Data[i].ToString(BarOption.ToolTip.ValueFormat);
|
||||
}
|
||||
|
||||
Bars[0][i].Tips = str;
|
||||
}
|
||||
}
|
||||
|
||||
private int selectIndex = -1;
|
||||
private Point DrawOrigin;
|
||||
private Size DrawSize;
|
||||
private float DrawBarWidth;
|
||||
@ -107,6 +121,52 @@ namespace Sunny.UI
|
||||
private double YAxisInterval;
|
||||
private readonly ConcurrentDictionary<int, List<BarInfo>> Bars = new ConcurrentDictionary<int, List<BarInfo>>();
|
||||
|
||||
[DefaultValue(-1), Browsable(false)]
|
||||
private int SelectIndex
|
||||
{
|
||||
get => selectIndex;
|
||||
set
|
||||
{
|
||||
if (BarOption.ToolTip != null && selectIndex != value)
|
||||
{
|
||||
selectIndex = value;
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
if (selectIndex < 0) tip.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnMouseMove(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseMove(e);
|
||||
|
||||
if (BarOption.ToolTip == null) return;
|
||||
if (e.Location.X > BarOption.Grid.Left && e.Location.X < Width - BarOption.Grid.Right
|
||||
&& e.Location.Y > BarOption.Grid.Top &&
|
||||
e.Location.Y < Height - BarOption.Grid.Bottom)
|
||||
{
|
||||
SelectIndex = (int)((e.Location.X - BarOption.Grid.Left) / DrawBarWidth);
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectIndex = -1;
|
||||
}
|
||||
|
||||
if (SelectIndex >= 0)
|
||||
{
|
||||
if (tip.Text != Bars[0][selectIndex].Tips)
|
||||
{
|
||||
tip.Text = Bars[0][selectIndex].Tips;
|
||||
tip.Size = new Size((int)Bars[0][selectIndex].Size.Width + 4, (int)Bars[0][selectIndex].Size.Height + 4);
|
||||
}
|
||||
|
||||
tip.Left = e.Location.X + 15;
|
||||
tip.Top = e.Location.Y + 20;
|
||||
if (!tip.Visible) tip.Visible = Bars[0][selectIndex].Tips.IsValid();
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
private UIBarOption BarOption
|
||||
{
|
||||
@ -158,6 +218,9 @@ namespace Sunny.UI
|
||||
option.XAxis.Data.Add("Thu");
|
||||
option.XAxis.Data.Add("Fri");
|
||||
|
||||
option.ToolTip = new UIBarToolTip();
|
||||
option.ToolTip.AxisPointer.Type = UIAxisPointerType.Shadow;
|
||||
|
||||
emptyOption = option;
|
||||
}
|
||||
|
||||
@ -165,12 +228,31 @@ namespace Sunny.UI
|
||||
{
|
||||
if (BarOption == null) return;
|
||||
if (!NeedDraw) return;
|
||||
|
||||
if (BarOption.ToolTip != null && BarOption.ToolTip.AxisPointer.Type == UIAxisPointerType.Shadow) DrawToolTip(g);
|
||||
DrawAxis(g);
|
||||
DrawTitle(g, BarOption.Title);
|
||||
DrawSeries(g, BarOption.Series);
|
||||
if (BarOption.ToolTip != null && BarOption.ToolTip.AxisPointer.Type == UIAxisPointerType.Line) DrawToolTip(g);
|
||||
DrawLegend(g, BarOption.Legend);
|
||||
}
|
||||
|
||||
private void DrawToolTip(Graphics g)
|
||||
{
|
||||
if (selectIndex < 0) return;
|
||||
if (BarOption.ToolTip.AxisPointer.Type == UIAxisPointerType.Line)
|
||||
{
|
||||
float x = DrawOrigin.X + SelectIndex * DrawBarWidth + DrawBarWidth / 2.0f;
|
||||
g.DrawLine(ChartStyle.ToolTipShadowColor, x, DrawOrigin.Y, x, BarOption.Grid.Top);
|
||||
}
|
||||
|
||||
if (BarOption.ToolTip.AxisPointer.Type == UIAxisPointerType.Shadow)
|
||||
{
|
||||
float x = DrawOrigin.X + SelectIndex * DrawBarWidth;
|
||||
g.FillRectangle(ChartStyle.ToolTipShadowColor, x, BarOption.Grid.Top, DrawBarWidth, Height - BarOption.Grid.Top - BarOption.Grid.Bottom);
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawAxis(Graphics g)
|
||||
{
|
||||
g.DrawLine(ChartStyle.ForeColor, DrawOrigin, new Point(DrawOrigin.X + DrawSize.Width, DrawOrigin.Y));
|
||||
@ -206,7 +288,7 @@ namespace Sunny.UI
|
||||
foreach (var data in BarOption.XAxis.Data)
|
||||
{
|
||||
SizeF sf = g.MeasureString(data, SubFont);
|
||||
g.DrawString(data, SubFont, ChartStyle.ForeColor, start - sf.Width / 2.0f, DrawOrigin.Y + BarOption.XAxis.AxisTick.Length);
|
||||
g.DrawString(data, SubFont, Color.FromArgb(150, ChartStyle.ForeColor), start - sf.Width / 2.0f, DrawOrigin.Y + BarOption.XAxis.AxisTick.Length);
|
||||
start += DrawBarWidth;
|
||||
}
|
||||
}
|
||||
@ -218,6 +300,17 @@ namespace Sunny.UI
|
||||
for (int i = YAxisStart; i <= YAxisEnd; i++)
|
||||
{
|
||||
g.DrawLine(ChartStyle.ForeColor, DrawOrigin.X, start, DrawOrigin.X - BarOption.YAxis.AxisTick.Length, start);
|
||||
|
||||
if (i != 0)
|
||||
{
|
||||
using (Pen pn = new Pen(ChartStyle.ForeColor))
|
||||
{
|
||||
pn.DashStyle = DashStyle.Dash;
|
||||
pn.DashPattern = new float[] { 3, 3 };
|
||||
g.DrawLine(pn, DrawOrigin.X, start, Width - BarOption.Grid.Right, start);
|
||||
}
|
||||
}
|
||||
|
||||
start -= DrawBarHeight;
|
||||
}
|
||||
}
|
||||
@ -249,11 +342,20 @@ namespace Sunny.UI
|
||||
g.FillRectangle(ChartStyle.SeriesColor[i], info.Rect);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < BarOption.XAxis.Data.Count; i++)
|
||||
{
|
||||
Bars[0][i].Size = g.MeasureString(Bars[0][i].Tips, SubFont);
|
||||
}
|
||||
}
|
||||
|
||||
internal class BarInfo
|
||||
{
|
||||
public RectangleF Rect { get; set; }
|
||||
|
||||
public string Tips { get; set; }
|
||||
|
||||
public SizeF Size { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@ -7,6 +7,8 @@ namespace Sunny.UI
|
||||
{
|
||||
public UICategoryAxis XAxis { get; set; } = new UICategoryAxis();
|
||||
|
||||
public UIBarToolTip ToolTip { get; set; }
|
||||
|
||||
public UIValueAxis YAxis { get; set; } = new UIValueAxis();
|
||||
|
||||
public List<UIBarSeries> Series = new List<UIBarSeries>();
|
||||
@ -35,6 +37,25 @@ namespace Sunny.UI
|
||||
public int SeriesCount => Series.Count;
|
||||
}
|
||||
|
||||
public class UIBarToolTip
|
||||
{
|
||||
public string Formatter { get; set; } = "{{b}} : {{c}}";
|
||||
|
||||
public string ValueFormat { get; set; } = "F0";
|
||||
|
||||
public UIAxisPointer AxisPointer= new UIAxisPointer();
|
||||
}
|
||||
|
||||
public class UIAxisPointer
|
||||
{
|
||||
public UIAxisPointerType Type { get; set; } = UIAxisPointerType.Line;
|
||||
}
|
||||
|
||||
public enum UIAxisPointerType
|
||||
{
|
||||
Line,Shadow
|
||||
}
|
||||
|
||||
public class UIAxis
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
@ -8,6 +8,8 @@ namespace Sunny.UI
|
||||
|
||||
public virtual Color ForeColor => Color.FromArgb(54, 54, 54);
|
||||
|
||||
public virtual Color ToolTipShadowColor => Color.FromArgb(215, 215, 215);
|
||||
|
||||
public int ColorCount => 11;
|
||||
|
||||
public virtual Color[] SeriesColor
|
||||
@ -66,6 +68,8 @@ namespace Sunny.UI
|
||||
|
||||
public override Color ForeColor => Color.FromArgb(239, 239, 239);
|
||||
|
||||
public override Color ToolTipShadowColor => Color.FromArgb(81, 81, 81);
|
||||
|
||||
public override Color[] SeriesColor
|
||||
{
|
||||
get
|
||||
|
@ -74,10 +74,7 @@ namespace Sunny.UI
|
||||
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
using (SolidBrush b = new SolidBrush(BackColor))
|
||||
{
|
||||
e.Graphics.FillRectangle(b, ClientRectangle);
|
||||
}
|
||||
e.Graphics.FillRectangle(BackColor, ClientRectangle);
|
||||
|
||||
RectangleF lr = ClientRectangleF;
|
||||
UIColorUtil.DrawFrame(e.Graphics, lr, 6, m_frameColor);
|
||||
@ -112,9 +109,9 @@ namespace Sunny.UI
|
||||
|
||||
using (SolidBrush b = new SolidBrush(ForeColor))
|
||||
{
|
||||
if (TextAngle == 0)
|
||||
if (TextAngle.EqualsFloat(0))
|
||||
{
|
||||
e.Graphics.DrawString(Text, Font, b, r, format);
|
||||
e.Graphics.DrawString(Text, Font, ForeColor, r, format);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -44,9 +44,9 @@ namespace Sunny.UI
|
||||
this.btnOK = new Sunny.UI.UISymbolButton();
|
||||
this.btnCancel = new Sunny.UI.UISymbolButton();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
//
|
||||
// m_colorTable
|
||||
//
|
||||
//
|
||||
this.m_colorTable.BackColor = System.Drawing.Color.Transparent;
|
||||
this.m_colorTable.Colors = new System.Drawing.Color[] {
|
||||
System.Drawing.Color.Black,
|
||||
@ -206,9 +206,9 @@ namespace Sunny.UI
|
||||
this.m_colorTable.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.m_colorTable.TextAngle = 0F;
|
||||
this.m_colorTable.SelectedIndexChanged += new System.EventHandler(this.m_colorTable_SelectedIndexChanged);
|
||||
//
|
||||
//
|
||||
// m_colorSample
|
||||
//
|
||||
//
|
||||
this.m_colorSample.FrameColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
|
||||
this.m_colorSample.Location = new System.Drawing.Point(10, 163);
|
||||
this.m_colorSample.Name = "m_colorSample";
|
||||
@ -222,9 +222,9 @@ namespace Sunny.UI
|
||||
this.m_colorSample.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.m_colorSample.TextAngle = 0F;
|
||||
this.m_colorSample.Paint += new System.Windows.Forms.PaintEventHandler(this.m_colorSample_Paint);
|
||||
//
|
||||
//
|
||||
// edtA
|
||||
//
|
||||
//
|
||||
this.edtA.Cursor = System.Windows.Forms.Cursors.IBeam;
|
||||
this.edtA.FillColor = System.Drawing.Color.White;
|
||||
this.edtA.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
@ -241,9 +241,9 @@ namespace Sunny.UI
|
||||
this.edtA.TabIndex = 2;
|
||||
this.edtA.Text = "0";
|
||||
this.edtA.Type = Sunny.UI.UITextBox.UIEditType.Integer;
|
||||
//
|
||||
//
|
||||
// edtR
|
||||
//
|
||||
//
|
||||
this.edtR.Cursor = System.Windows.Forms.Cursors.IBeam;
|
||||
this.edtR.FillColor = System.Drawing.Color.White;
|
||||
this.edtR.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
@ -260,9 +260,9 @@ namespace Sunny.UI
|
||||
this.edtR.TabIndex = 3;
|
||||
this.edtR.Text = "0";
|
||||
this.edtR.Type = Sunny.UI.UITextBox.UIEditType.Integer;
|
||||
//
|
||||
//
|
||||
// edtG
|
||||
//
|
||||
//
|
||||
this.edtG.Cursor = System.Windows.Forms.Cursors.IBeam;
|
||||
this.edtG.FillColor = System.Drawing.Color.White;
|
||||
this.edtG.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
@ -279,9 +279,9 @@ namespace Sunny.UI
|
||||
this.edtG.TabIndex = 4;
|
||||
this.edtG.Text = "0";
|
||||
this.edtG.Type = Sunny.UI.UITextBox.UIEditType.Integer;
|
||||
//
|
||||
//
|
||||
// edtB
|
||||
//
|
||||
//
|
||||
this.edtB.Cursor = System.Windows.Forms.Cursors.IBeam;
|
||||
this.edtB.FillColor = System.Drawing.Color.White;
|
||||
this.edtB.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
@ -298,9 +298,9 @@ namespace Sunny.UI
|
||||
this.edtB.TabIndex = 5;
|
||||
this.edtB.Text = "0";
|
||||
this.edtB.Type = Sunny.UI.UITextBox.UIEditType.Integer;
|
||||
//
|
||||
//
|
||||
// lblA
|
||||
//
|
||||
//
|
||||
this.lblA.AutoSize = true;
|
||||
this.lblA.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblA.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
@ -311,9 +311,9 @@ namespace Sunny.UI
|
||||
this.lblA.TabIndex = 6;
|
||||
this.lblA.Text = "A";
|
||||
this.lblA.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
//
|
||||
// lblR
|
||||
//
|
||||
//
|
||||
this.lblR.AutoSize = true;
|
||||
this.lblR.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblR.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
@ -324,9 +324,9 @@ namespace Sunny.UI
|
||||
this.lblR.TabIndex = 7;
|
||||
this.lblR.Text = "R";
|
||||
this.lblR.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
//
|
||||
// lblG
|
||||
//
|
||||
//
|
||||
this.lblG.AutoSize = true;
|
||||
this.lblG.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblG.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
@ -337,9 +337,9 @@ namespace Sunny.UI
|
||||
this.lblG.TabIndex = 8;
|
||||
this.lblG.Text = "G";
|
||||
this.lblG.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
//
|
||||
// lblB
|
||||
//
|
||||
//
|
||||
this.lblB.AutoSize = true;
|
||||
this.lblB.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblB.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
@ -350,9 +350,9 @@ namespace Sunny.UI
|
||||
this.lblB.TabIndex = 9;
|
||||
this.lblB.Text = "B";
|
||||
this.lblB.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
//
|
||||
// m_colorWheel
|
||||
//
|
||||
//
|
||||
this.m_colorWheel.BackColor = System.Drawing.Color.Transparent;
|
||||
this.m_colorWheel.FrameColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
|
||||
this.m_colorWheel.Location = new System.Drawing.Point(269, 8);
|
||||
@ -365,9 +365,9 @@ namespace Sunny.UI
|
||||
this.m_colorWheel.TagString = null;
|
||||
this.m_colorWheel.Text = "colorWheel1";
|
||||
this.m_colorWheel.SelectedColorChanged += new System.EventHandler(this.m_colorWheel_SelectedColorChanged);
|
||||
//
|
||||
//
|
||||
// m_colorBar
|
||||
//
|
||||
//
|
||||
this.m_colorBar.BackColor = System.Drawing.Color.Transparent;
|
||||
this.m_colorBar.BarPadding = new System.Windows.Forms.Padding(12, 5, 32, 10);
|
||||
this.m_colorBar.Color1 = System.Drawing.Color.Black;
|
||||
@ -392,9 +392,9 @@ namespace Sunny.UI
|
||||
this.m_colorBar.TextAngle = 270F;
|
||||
this.m_colorBar.ValueOrientation = Sunny.UI.ColorSlider.eValueOrientation.MaxToMin;
|
||||
this.m_colorBar.SelectedValueChanged += new System.EventHandler(this.m_colorBar_SelectedValueChanged);
|
||||
//
|
||||
//
|
||||
// m_opacitySlider
|
||||
//
|
||||
//
|
||||
this.m_opacitySlider.BackColor = System.Drawing.Color.Transparent;
|
||||
this.m_opacitySlider.BarPadding = new System.Windows.Forms.Padding(60, 12, 80, 25);
|
||||
this.m_opacitySlider.Color1 = System.Drawing.Color.White;
|
||||
@ -420,9 +420,9 @@ namespace Sunny.UI
|
||||
this.m_opacitySlider.TextAngle = 0F;
|
||||
this.m_opacitySlider.ValueOrientation = Sunny.UI.ColorSlider.eValueOrientation.MinToMax;
|
||||
this.m_opacitySlider.SelectedValueChanged += new System.EventHandler(this.m_opacitySlider_SelectedValueChanged);
|
||||
//
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
//
|
||||
this.btnOK.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnOK.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||
this.btnOK.Location = new System.Drawing.Point(269, 197);
|
||||
@ -433,9 +433,9 @@ namespace Sunny.UI
|
||||
this.btnOK.TabIndex = 12;
|
||||
this.btnOK.Text = "确定";
|
||||
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||
//
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
//
|
||||
this.btnCancel.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnCancel.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||
this.btnCancel.Location = new System.Drawing.Point(372, 197);
|
||||
@ -447,9 +447,9 @@ namespace Sunny.UI
|
||||
this.btnCancel.TabIndex = 13;
|
||||
this.btnCancel.Text = "取消";
|
||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||
//
|
||||
//
|
||||
// UIColorItem
|
||||
//
|
||||
//
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.Controls.Add(this.m_opacitySlider);
|
||||
@ -471,7 +471,6 @@ namespace Sunny.UI
|
||||
this.Style = Sunny.UI.UIStyle.Custom;
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
private void m_colorTable_SelectedIndexChanged(object sender, EventArgs e)
|
||||
@ -566,15 +565,13 @@ namespace Sunny.UI
|
||||
r.Width /= 2;
|
||||
|
||||
Color c = Color.FromArgb((int)Math.Floor(255f * m_opacity), m_selectedColor);
|
||||
SolidBrush b = new SolidBrush(c);
|
||||
e.Graphics.FillRectangle(b, r);
|
||||
e.Graphics.FillRectangle(c, r);
|
||||
|
||||
r.X += r.Width;
|
||||
|
||||
e.Graphics.FillRectangle(Brushes.White, r);
|
||||
e.Graphics.FillRectangle(Color.White, r);
|
||||
c = Color.FromArgb(255, m_selectedColor);
|
||||
b = new SolidBrush(c);
|
||||
e.Graphics.FillRectangle(b, r);
|
||||
e.Graphics.FillRectangle(c, r);
|
||||
}
|
||||
|
||||
public override void SetStyle(UIBaseStyle uiColor)
|
||||
|
@ -133,8 +133,8 @@ namespace Sunny.UI
|
||||
float sfMax = Math.Max(sf.Width, sf.Height);
|
||||
float x = Width - 1 - 2 - sfMax;
|
||||
float y = 1 + 1;
|
||||
e.Graphics.FillEllipse(Brushes.Red, x, y, sfMax, sfMax);
|
||||
e.Graphics.DrawString(TipsText, TipsFont, Brushes.White, x + sfMax / 2.0f - sf.Width / 2.0f, y + sfMax / 2.0f - sf.Height / 2.0f);
|
||||
e.Graphics.FillEllipse(UIColor.Red, x, y, sfMax, sfMax);
|
||||
e.Graphics.DrawString(TipsText, TipsFont, Color.White, x + sfMax / 2.0f - sf.Width / 2.0f, y + sfMax / 2.0f - sf.Height / 2.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -143,7 +143,7 @@ namespace Sunny.UI
|
||||
|
||||
// Draw the background ellipse
|
||||
var rectangle = new Rectangle(Padding.Left, Padding.Top, diameter, diameter);
|
||||
g.FillEllipse(new SolidBrush(darkColor), rectangle);
|
||||
g.FillEllipse(darkColor, rectangle);
|
||||
|
||||
// Draw the glow gradient
|
||||
var path = new GraphicsPath();
|
||||
@ -152,6 +152,7 @@ namespace Sunny.UI
|
||||
pathBrush.CenterColor = lightColor;
|
||||
pathBrush.SurroundColors = new[] { Color.FromArgb(0, lightColor) };
|
||||
g.FillEllipse(pathBrush, rectangle);
|
||||
pathBrush.Dispose();
|
||||
|
||||
// Draw the white reflection gradient
|
||||
var offset = Convert.ToInt32(diameter * .15F);
|
||||
@ -163,6 +164,7 @@ namespace Sunny.UI
|
||||
pathBrush1.CenterColor = _reflectionColor;
|
||||
pathBrush1.SurroundColors = _surroundColor;
|
||||
g.FillEllipse(pathBrush1, whiteRect);
|
||||
pathBrush1.Dispose();
|
||||
|
||||
// Draw the border
|
||||
g.SetClip(ClientRectangle);
|
||||
|
@ -55,12 +55,12 @@ namespace Sunny.UI
|
||||
int n1 = 66;
|
||||
int n3 = -20;
|
||||
|
||||
g.FillPie(new SolidBrush(UIColor.Blue), x, y, n1, n1, -30, 60);
|
||||
g.FillPie(new SolidBrush(UIColor.Gray), x, y, n1, n1, 30, 60);
|
||||
g.FillPie(new SolidBrush(UIColor.Red), x, y, n1, n1, 90, 60);
|
||||
g.FillPie(new SolidBrush(UIColor.Orange), x, y, n1, n1, 150, 60);
|
||||
g.FillPie(new SolidBrush(Color.FromArgb(255, 196, 0)), x, y, n1, n1, 210, 60);
|
||||
g.FillPie(new SolidBrush(UIColor.Green), x, y, n1, n1, 270, 60);
|
||||
g.FillPie(UIColor.Blue, x, y, n1, n1, -30, 60);
|
||||
g.FillPie(UIColor.Gray, x, y, n1, n1, 30, 60);
|
||||
g.FillPie(UIColor.Red, x, y, n1, n1, 90, 60);
|
||||
g.FillPie(UIColor.Orange, x, y, n1, n1, 150, 60);
|
||||
g.FillPie(Color.FromArgb(255, 196, 0), x, y, n1, n1, 210, 60);
|
||||
g.FillPie(UIColor.Green, x, y, n1, n1, 270, 60);
|
||||
|
||||
g.FillEllipse(BackColor, x - n3, y - n3, n1 + n3 * 2, n1 + n3 * 2);
|
||||
g.SetHighQuality();
|
||||
|
@ -351,6 +351,11 @@ namespace Sunny.UI
|
||||
MenuHelper.SetPageIndex(node, pageIndex);
|
||||
}
|
||||
|
||||
public void SetNodeTipsText(TreeNode node, string tipsText)
|
||||
{
|
||||
MenuHelper.SetTipsText(node,tipsText);
|
||||
}
|
||||
|
||||
public void SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24)
|
||||
{
|
||||
MenuHelper.SetSymbol(node, symbol, symbolSize);
|
||||
@ -443,8 +448,8 @@ namespace Sunny.UI
|
||||
float tipsLeft = Width - (ScrollBarVisible ? 50 : 30) - 6 - sfMax;
|
||||
float tipsTop = e.Bounds.Y + (ItemHeight - sfMax) / 2;
|
||||
|
||||
e.Graphics.FillEllipse(Brushes.Red, tipsLeft, tipsTop, sfMax, sfMax);
|
||||
e.Graphics.DrawString(MenuHelper.GetTipsText(e.Node), TipsFont, Brushes.White, tipsLeft + sfMax / 2.0f - tipsSize.Width / 2.0f, tipsTop + sfMax / 2.0f - tipsSize.Height / 2.0f);
|
||||
e.Graphics.FillEllipse(UIColor.Red, tipsLeft, tipsTop, sfMax, sfMax);
|
||||
e.Graphics.DrawString(MenuHelper.GetTipsText(e.Node), TipsFont, Color.White, tipsLeft + sfMax / 2.0f - tipsSize.Width / 2.0f, tipsTop + 1 + sfMax / 2.0f - tipsSize.Height / 2.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -101,7 +101,6 @@ namespace Sunny.UI
|
||||
Helper.AddPage(guid, page);
|
||||
}
|
||||
|
||||
|
||||
public string Version { get; }
|
||||
|
||||
private Color _fillColor = UIColor.LightBlue;
|
||||
@ -607,11 +606,8 @@ namespace Sunny.UI
|
||||
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
|
||||
Color color = Enabled ? BackColor : SystemColors.Control;
|
||||
using (SolidBrush brush = new SolidBrush(color))
|
||||
{
|
||||
rect.Inflate(1, 1);
|
||||
g.FillRectangle(brush, rect);
|
||||
}
|
||||
rect.Inflate(1, 1);
|
||||
g.FillRectangle(color, rect);
|
||||
|
||||
RenderButton(g, upButtonRect, upButtonBaseColor, upButtonBorderColor, upButtonArrowColor, ArrowDirection.Left);
|
||||
RenderButton(g, downButtonRect, downButtonBaseColor, downButtonBorderColor, downButtonArrowColor, ArrowDirection.Right);
|
||||
|
@ -476,8 +476,8 @@ namespace Sunny.UI
|
||||
float tipsLeft = Width - (ScrollBarVisible ? 50 : 30) - 6 - sfMax;
|
||||
float tipsTop = e.Bounds.Y + (ItemHeight - sfMax) / 2;
|
||||
|
||||
e.Graphics.FillEllipse(Brushes.Red, tipsLeft, tipsTop, sfMax, sfMax);
|
||||
e.Graphics.DrawString(MenuHelper.GetTipsText(e.Node), TipsFont, Brushes.White, tipsLeft + sfMax / 2.0f - tipsSize.Width / 2.0f, tipsTop + sfMax / 2.0f - tipsSize.Height / 2.0f);
|
||||
e.Graphics.FillEllipse(Color.Red, tipsLeft, tipsTop, sfMax, sfMax);
|
||||
e.Graphics.DrawString(MenuHelper.GetTipsText(e.Node), TipsFont, Color.White, tipsLeft + sfMax / 2.0f - tipsSize.Width / 2.0f, tipsTop + sfMax / 2.0f - tipsSize.Height / 2.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -795,7 +795,7 @@ namespace Sunny.UI
|
||||
{
|
||||
if (InMaxBox)
|
||||
{
|
||||
e.Graphics.FillRoundRectangle(new SolidBrush(btn.FillHoverColor), MaximizeBoxRect, 5);
|
||||
e.Graphics.FillRoundRectangle(btn.FillHoverColor, MaximizeBoxRect, 5);
|
||||
}
|
||||
|
||||
e.Graphics.DrawFontImage(
|
||||
@ -808,7 +808,7 @@ namespace Sunny.UI
|
||||
{
|
||||
if (InMinBox)
|
||||
{
|
||||
e.Graphics.FillRoundRectangle(new SolidBrush(btn.FillHoverColor), MinimizeBoxRect, 5);
|
||||
e.Graphics.FillRoundRectangle(btn.FillHoverColor, MinimizeBoxRect, 5);
|
||||
}
|
||||
|
||||
e.Graphics.DrawFontImage(62161, 24, Color.White, MinimizeBoxRect, 1);
|
||||
|
@ -1,5 +1,9 @@
|
||||
+ 增加; - 删除; * 修改
|
||||
|
||||
2020.06.16
|
||||
+ UIBarChart:新增ToolTip显示
|
||||
+ UINavMenu:新增TipsText气泡数字显示
|
||||
|
||||
2020.06.15
|
||||
+UIBarChart:新增UIBarChart控件
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user