* UIChart:重构了图表的ToolTip显示

This commit is contained in:
Sunny 2020-10-11 09:51:35 +08:00
parent 3828b68355
commit c624475be3
16 changed files with 51 additions and 23 deletions

Binary file not shown.

Binary file not shown.

View File

@ -48,7 +48,7 @@ namespace Sunny.UI.Demo.Charts
option.XAxis.Data.Add("Thu"); option.XAxis.Data.Add("Thu");
option.XAxis.Data.Add("Fri"); option.XAxis.Data.Add("Fri");
option.ToolTip = new UIBarToolTip(); option.ToolTip.Visible = true;
option.YAxis.Scale = true; option.YAxis.Scale = true;
option.XAxis.Name = "日期"; option.XAxis.Name = "日期";

View File

@ -73,7 +73,7 @@ namespace Sunny.UI.Demo
option.XAxis.Data.Add("Thu"); option.XAxis.Data.Add("Thu");
option.XAxis.Data.Add("Fri"); option.XAxis.Data.Add("Fri");
option.ToolTip = new UIBarToolTip(); option.ToolTip.Visible = true;
option.YAxis.Scale = true; option.YAxis.Scale = true;
option.XAxis.Name = "日期"; option.XAxis.Name = "日期";

View File

@ -18,7 +18,7 @@
option.Title.Left = UILeftAlignment.Center; option.Title.Left = UILeftAlignment.Center;
//设置ToolTip //设置ToolTip
option.ToolTip = new UIPieToolTip(); option.ToolTip.Visible = true;
//设置Legend //设置Legend
option.Legend = new UILegend(); option.Legend = new UILegend();

View File

@ -14,7 +14,7 @@ namespace Sunny.UI.Demo.Charts
private void uiSymbolButton1_Click(object sender, EventArgs e) private void uiSymbolButton1_Click(object sender, EventArgs e)
{ {
UILineOption option = new UILineOption(); UILineOption option = new UILineOption();
option.ToolTip = new UIBarToolTip(); option.ToolTip.Visible = true;
option.Title = new UITitle(); option.Title = new UITitle();
option.Title.Text = "SunnyUI"; option.Title.Text = "SunnyUI";
option.Title.SubText = "LineChart"; option.Title.SubText = "LineChart";

View File

@ -33,7 +33,7 @@
option.Title.Left = UILeftAlignment.Center; option.Title.Left = UILeftAlignment.Center;
//设置ToolTip //设置ToolTip
option.ToolTip = new UIPieToolTip(); option.ToolTip.Visible = true;
//设置Legend //设置Legend
option.Legend = new UILegend(); option.Legend = new UILegend();

View File

@ -274,7 +274,7 @@ namespace Sunny.UI
try try
{ {
if (BarOption.ToolTip == null) return; if (!BarOption.ToolTip.Visible) return;
if (e.Location.X > BarOption.Grid.Left && e.Location.X < Width - BarOption.Grid.Right if (e.Location.X > BarOption.Grid.Left && e.Location.X < Width - BarOption.Grid.Right
&& e.Location.Y > BarOption.Grid.Top && && e.Location.Y > BarOption.Grid.Top &&
e.Location.Y < Height - BarOption.Grid.Bottom) e.Location.Y < Height - BarOption.Grid.Bottom)

View File

@ -481,7 +481,7 @@ namespace Sunny.UI
{ {
try try
{ {
if (BarOption.ToolTip == null) return; if (!BarOption.ToolTip.Visible) return;
if (e.Location.X > BarOption.Grid.Left && if (e.Location.X > BarOption.Grid.Left &&
e.Location.X < Width - BarOption.Grid.Right && e.Location.X < Width - BarOption.Grid.Right &&
e.Location.Y > BarOption.Grid.Top && e.Location.Y > BarOption.Grid.Top &&

View File

@ -29,7 +29,7 @@ namespace Sunny.UI
{ {
public UIAxis XAxis { get; set; } = new UIAxis(UIAxisType.Category); public UIAxis XAxis { get; set; } = new UIAxis(UIAxisType.Category);
public UIBarToolTip ToolTip { get; set; } public UIBarToolTip ToolTip { get; set; } = new UIBarToolTip();
public UIAxis YAxis { get; set; } = new UIAxis(UIAxisType.Value); public UIAxis YAxis { get; set; } = new UIAxis(UIAxisType.Value);
@ -69,13 +69,15 @@ namespace Sunny.UI
public int SeriesCount => Series.Count; public int SeriesCount => Series.Count;
} }
public class UIBarToolTip public class UIBarToolTip : UIChartToolTip
{ {
public string Formatter { get; set; } = "{{b}} : {{c}}";
public string ValueFormat { get; set; } = "F0";
public UIAxisPointer AxisPointer = new UIAxisPointer(); public UIAxisPointer AxisPointer = new UIAxisPointer();
public UIBarToolTip()
{
Formatter = "{{b}} : {{c}}";
ValueFormat = "F0";
}
} }
public class UIAxisPointer public class UIAxisPointer

View File

@ -214,7 +214,11 @@ namespace Sunny.UI
tip.Top = e.Location.Y + 20; tip.Top = e.Location.Y + 20;
} }
if (!tip.Visible) tip.Visible = angle.Text.IsValid(); if (DoughnutOption.ToolTip.Visible)
{
if (!tip.Visible) tip.Visible = angle.Text.IsValid();
}
return; return;
} }
} }

View File

@ -495,7 +495,7 @@ namespace Sunny.UI
idx++; idx++;
} }
if (LineOption.ToolTip != null) if (LineOption.ToolTip.Visible)
{ {
if (sb.ToString().IsNullOrEmpty()) if (sb.ToString().IsNullOrEmpty())
{ {

View File

@ -12,7 +12,7 @@ namespace Sunny.UI
public UIAxis YAxis { get; set; } = new UIAxis(UIAxisType.Value); public UIAxis YAxis { get; set; } = new UIAxis(UIAxisType.Value);
public UIBarToolTip ToolTip { get; set; } public UILineToolTip ToolTip { get; set; } = new UILineToolTip();
public void Dispose() public void Dispose()
{ {
@ -215,8 +215,14 @@ namespace Sunny.UI
} }
} }
public class UILineToolTip : UIChartToolTip
{
}
public class UILineSeries public class UILineSeries
{ {
public int Index { get; set; }
public string Name { get; private set; } public string Name { get; private set; }
public float Width { get; set; } = 2; public float Width { get; set; } = 2;

View File

@ -30,6 +30,15 @@ namespace Sunny.UI
public UILegend Legend; public UILegend Legend;
} }
public class UIChartToolTip
{
public bool Visible { get; set; }
public string Formatter { get; set; }
public string ValueFormat { get; set; }
}
public class UIScaleLine public class UIScaleLine
{ {
public double Value { get; set; } public double Value { get; set; }

View File

@ -243,7 +243,11 @@ namespace Sunny.UI
tip.Top = e.Location.Y + 20; tip.Top = e.Location.Y + 20;
} }
if (!tip.Visible) tip.Visible = angle.Text.IsValid(); if (PieOption.ToolTip.Visible)
{
if (!tip.Visible) tip.Visible = angle.Text.IsValid();
}
return; return;
} }
} }

View File

@ -29,7 +29,7 @@ namespace Sunny.UI
{ {
public List<UIPieSeries> Series = new List<UIPieSeries>(); public List<UIPieSeries> Series = new List<UIPieSeries>();
public UIPieToolTip ToolTip; public UIPieToolTip ToolTip { get; set; } = new UIPieToolTip();
public void AddSeries(UIPieSeries series) public void AddSeries(UIPieSeries series)
{ {
@ -54,7 +54,7 @@ namespace Sunny.UI
{ {
public List<UIDoughnutSeries> Series = new List<UIDoughnutSeries>(); public List<UIDoughnutSeries> Series = new List<UIDoughnutSeries>();
public UIPieToolTip ToolTip; public UIPieToolTip ToolTip { get; set; } = new UIPieToolTip();
public void AddSeries(UIDoughnutSeries series) public void AddSeries(UIDoughnutSeries series)
{ {
@ -75,11 +75,14 @@ namespace Sunny.UI
public int SeriesCount => Series.Count; public int SeriesCount => Series.Count;
} }
public class UIPieToolTip public class UIPieToolTip : UIChartToolTip
{ {
public string Formatter { get; set; } = "{{a}}" + '\n' + "{{b}} : {{c}} ({{d}}%)"; public UIPieToolTip()
{
public string ValueFormat { get; set; } = "F0"; Formatter = "{{a}}" + '\n' + "{{b}} : {{c}} ({{d}}%)";
ValueFormat = "F0";
Visible = true;
}
} }
public class UIPieSeries : IDisposable public class UIPieSeries : IDisposable