mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-23 17:30:10 +00:00
优化Tooltip
This commit is contained in:
@@ -208,7 +208,7 @@ namespace XCharts
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 当前提示框所指示的Serie索引(目前只对散点图有效)。
|
/// 当前提示框所指示的Serie索引(目前只对散点图有效)。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Dictionary<int, List<int>> runtimeSerieDataIndex { get; internal set; }
|
public Dictionary<int, List<int>> runtimeSerieIndex { get; internal set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The data index currently indicated by Tooltip.
|
/// The data index currently indicated by Tooltip.
|
||||||
/// 当前提示框所指示的数据项索引。
|
/// 当前提示框所指示的数据项索引。
|
||||||
@@ -261,7 +261,7 @@ namespace XCharts
|
|||||||
runtimeYValues = new float[2] { -1, -1 },
|
runtimeYValues = new float[2] { -1, -1 },
|
||||||
runtimeDataIndex = new List<int>() { -1, -1 },
|
runtimeDataIndex = new List<int>() { -1, -1 },
|
||||||
lastDataIndex = new List<int>() { -1, -1 },
|
lastDataIndex = new List<int>() { -1, -1 },
|
||||||
runtimeSerieDataIndex = new Dictionary<int, List<int>>()
|
runtimeSerieIndex = new Dictionary<int, List<int>>()
|
||||||
};
|
};
|
||||||
return tooltip;
|
return tooltip;
|
||||||
}
|
}
|
||||||
@@ -458,7 +458,7 @@ namespace XCharts
|
|||||||
|
|
||||||
public void ClearSerieDataIndex()
|
public void ClearSerieDataIndex()
|
||||||
{
|
{
|
||||||
foreach (var kv in runtimeSerieDataIndex)
|
foreach (var kv in runtimeSerieIndex)
|
||||||
{
|
{
|
||||||
kv.Value.Clear();
|
kv.Value.Clear();
|
||||||
}
|
}
|
||||||
@@ -466,16 +466,16 @@ namespace XCharts
|
|||||||
|
|
||||||
public void AddSerieDataIndex(int serieIndex, int dataIndex)
|
public void AddSerieDataIndex(int serieIndex, int dataIndex)
|
||||||
{
|
{
|
||||||
if (!runtimeSerieDataIndex.ContainsKey(serieIndex))
|
if (!runtimeSerieIndex.ContainsKey(serieIndex))
|
||||||
{
|
{
|
||||||
runtimeSerieDataIndex[serieIndex] = new List<int>();
|
runtimeSerieIndex[serieIndex] = new List<int>();
|
||||||
}
|
}
|
||||||
runtimeSerieDataIndex[serieIndex].Add(dataIndex);
|
runtimeSerieIndex[serieIndex].Add(dataIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool isAnySerieDataIndex()
|
public bool isAnySerieDataIndex()
|
||||||
{
|
{
|
||||||
foreach (var kv in runtimeSerieDataIndex)
|
foreach (var kv in runtimeSerieIndex)
|
||||||
{
|
{
|
||||||
if (kv.Value.Count > 0) return true;
|
if (kv.Value.Count > 0) return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ namespace XCharts
|
|||||||
private static void InitScatterTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index,
|
private static void InitScatterTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index,
|
||||||
ThemeInfo themeInfo)
|
ThemeInfo themeInfo)
|
||||||
{
|
{
|
||||||
if (!tooltip.runtimeSerieDataIndex.ContainsKey(serie.index)) return;
|
if (!tooltip.runtimeSerieIndex.ContainsKey(serie.index)) return;
|
||||||
var dataIndexList = tooltip.runtimeSerieDataIndex[serie.index];
|
var dataIndexList = tooltip.runtimeSerieIndex[serie.index];
|
||||||
if (!string.IsNullOrEmpty(serie.name))
|
if (!string.IsNullOrEmpty(serie.name))
|
||||||
{
|
{
|
||||||
sb.Append(serie.name).Append(FormatterHelper.PH_NN);
|
sb.Append(serie.name).Append(FormatterHelper.PH_NN);
|
||||||
@@ -222,7 +222,7 @@ namespace XCharts
|
|||||||
FormatterHelper.ReplaceContent(ref itemTitle, dataIndex, tooltip.numericFormatter, serie, series, themeInfo, category, dataZoom);
|
FormatterHelper.ReplaceContent(ref itemTitle, dataIndex, tooltip.numericFormatter, serie, series, themeInfo, category, dataZoom);
|
||||||
sb.Append(itemTitle).Append(FormatterHelper.PH_NN);
|
sb.Append(itemTitle).Append(FormatterHelper.PH_NN);
|
||||||
}
|
}
|
||||||
var dataIndexList = tooltip.runtimeSerieDataIndex[serie.index];
|
var dataIndexList = tooltip.runtimeSerieIndex[serie.index];
|
||||||
foreach (var tempIndex in dataIndexList)
|
foreach (var tempIndex in dataIndexList)
|
||||||
{
|
{
|
||||||
string content = itemFormatter;
|
string content = itemFormatter;
|
||||||
@@ -235,7 +235,7 @@ namespace XCharts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (tooltip.runtimeDataIndex[serie.index] >= 0)
|
else if (IsNeedTooltipSerie(serie, tooltip))
|
||||||
{
|
{
|
||||||
var serieData = serie.GetSerieData(dataIndex, dataZoom);
|
var serieData = serie.GetSerieData(dataIndex, dataZoom);
|
||||||
if (serieData == null) continue;
|
if (serieData == null) continue;
|
||||||
@@ -289,11 +289,23 @@ namespace XCharts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool IsNeedTooltipSerie(Serie serie, Tooltip tooltip)
|
||||||
|
{
|
||||||
|
if (serie.type == SerieType.Pie || serie.type == SerieType.Radar || serie.type == SerieType.Ring)
|
||||||
|
{
|
||||||
|
return tooltip.runtimeDataIndex[serie.index] >= 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static bool IsSelectedSerie(Tooltip tooltip, int serieIndex)
|
private static bool IsSelectedSerie(Tooltip tooltip, int serieIndex)
|
||||||
{
|
{
|
||||||
if (tooltip.runtimeSerieDataIndex.ContainsKey(serieIndex))
|
if (tooltip.runtimeSerieIndex.ContainsKey(serieIndex))
|
||||||
{
|
{
|
||||||
return tooltip.runtimeSerieDataIndex[serieIndex].Count > 0;
|
return tooltip.runtimeSerieIndex[serieIndex].Count > 0;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user