【发布时间】:2020-07-06 12:19:48
【问题描述】:
在分类轴中,每个数据都有标签。
字符串有时太长,因此会与其他字符串重叠。
oxyplot 中还有其他可以裁剪的元素,例如axisTitle、Title等
我想根据标签之间的可用空间剪裁轴标签。
这就是我想要实现的目标:
LabelFormatter = a => a.Length > 10 ? a.Substring(0,9) : a
但 LabelFormatter 仅适用于数字,不适用于字符串。
您是否有一种方法可以做到这一点,以便在轴上修剪标签,但它们在跟踪器工具提示中仍然显示完整?
如果你想复制我遇到的问题,你可以:
- 打开 Visual Studio
- 加载oxyplot.WPF.sln(之前从github,master分支下载)
- 找到示例\示例浏览器\CategoryAxisExamples.cs
- 修改第 34 行,将“A”替换为“Very long item A”等。
- 您现在可以运行示例浏览器应用程序并在 Category Axis -> ItemsSource - string[] example 中找到示例
public static PlotModel ItemsSourceStrings()
{
var model = new PlotModel { Title = "CategoryAxis with string[] as ItemsSource" };
model.Axes.Add(new CategoryAxis
{
StringFormat = "Very long item {0}",
ItemsSource = new[] { "A", "B", "C" }
});
var linearAxis = new LinearAxis { Position = AxisPosition.Left };
model.Axes.Add(linearAxis);
return model;
}
【问题讨论】:
-
看起来您已经创建了一个示例应用程序,该示例应用程序遇到了您遇到的问题。如果您包含该代码,那么任何回答此问题的人都可以更轻松地通过代码给出明确的答案。
-
好的。我会去做。它是如此简单,我认为没有必要,但我将添加代码。感谢您的提示!