mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-17 05:50:09 +00:00
优化Tooltip
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user