优化Tooltip

This commit is contained in:
monitor1394
2020-06-14 18:16:23 +08:00
parent e77c9fd327
commit 45dede8aee
2 changed files with 25 additions and 13 deletions

View File

@@ -208,7 +208,7 @@ namespace XCharts
/// <summary>
/// 当前提示框所指示的Serie索引目前只对散点图有效
/// </summary>
public Dictionary<int, List<int>> runtimeSerieDataIndex { get; internal set; }
public Dictionary<int, List<int>> runtimeSerieIndex { get; internal set; }
/// <summary>
/// The data index currently indicated by Tooltip.
/// 当前提示框所指示的数据项索引。
@@ -261,7 +261,7 @@ namespace XCharts
runtimeYValues = new float[2] { -1, -1 },
runtimeDataIndex = 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;
}
@@ -458,7 +458,7 @@ namespace XCharts
public void ClearSerieDataIndex()
{
foreach (var kv in runtimeSerieDataIndex)
foreach (var kv in runtimeSerieIndex)
{
kv.Value.Clear();
}
@@ -466,16 +466,16 @@ namespace XCharts
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()
{
foreach (var kv in runtimeSerieDataIndex)
foreach (var kv in runtimeSerieIndex)
{
if (kv.Value.Count > 0) return true;
}

View File

@@ -15,8 +15,8 @@ namespace XCharts
private static void InitScatterTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index,
ThemeInfo themeInfo)
{
if (!tooltip.runtimeSerieDataIndex.ContainsKey(serie.index)) return;
var dataIndexList = tooltip.runtimeSerieDataIndex[serie.index];
if (!tooltip.runtimeSerieIndex.ContainsKey(serie.index)) return;
var dataIndexList = tooltip.runtimeSerieIndex[serie.index];
if (!string.IsNullOrEmpty(serie.name))
{
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);
sb.Append(itemTitle).Append(FormatterHelper.PH_NN);
}
var dataIndexList = tooltip.runtimeSerieDataIndex[serie.index];
var dataIndexList = tooltip.runtimeSerieIndex[serie.index];
foreach (var tempIndex in dataIndexList)
{
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);
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)
{
if (tooltip.runtimeSerieDataIndex.ContainsKey(serieIndex))
if (tooltip.runtimeSerieIndex.ContainsKey(serieIndex))
{
return tooltip.runtimeSerieDataIndex[serieIndex].Count > 0;
return tooltip.runtimeSerieIndex[serieIndex].Count > 0;
}
return false;
}