【问题标题】:ListBox with GridLines带有网格线的列表框
【发布时间】:2015-09-23 11:23:20
【问题描述】:

我已经定义了具有所有功能的列表框(它是一个带有拖动点的图表)。在 ListBox 周围,我想在 X 和 Y 轴上添加“GridLines”(我希望这是正确的词 - X 轴上的数据信息和 Y 轴上的数据信息 - example - 每半小时左右的时间,X 和 0- 100% 在 Y 轴上)。

所以在 X 轴上,我喜欢从 0:00 到 24:00 的时间,在 Y 轴上从 0 到 100 的时间。我可以使用普通标签或文本块并在其中写入数字是最简单的想法。但是因为列表框的网格会根据数据而变化,所以我喜欢可管理的缩放。开始总是例如。 0 和 end 也总是例如。 100%。我喜欢缩放每 20 个单位(0%、20%、40%、60%、80% 和 100%)或每 25%(0%、25%、50%、75%、100%)显示信息的信息左右。

我认为使用边框(用于小标记线)并在下一行使用 TextBlock 定义值。所有这些都包含在 DataTemplate 中。

如果有不清楚的地方或有任何问题,请提出。

【问题讨论】:

  • 我不认为ListBox 是您想要实现的目标的最佳选择。使用CanvasGrapics namespace 使用GDI+ 绘制任何你想要的东西。它更快更适合绘制图表。
  • 对不起。它是帆布是的。我混淆了,因为 ListBox 用于在背景中显示网格。对不起!像这个例子link

标签: c# wpf mvvm graph gridlines


【解决方案1】:

听起来您的问题的难点在于确定要使用的网格线间隔。我描述了一个很好的算法here,它产生了令观众满意的范围。

这样,您可以将维度划分为空间并相应地缩放值。无论您使用什么逻辑来定位点,都应该更新。

对于绘制线条,您可以将Line 形状添加到您的Canvas

【讨论】:

    猜你喜欢
    • 2013-01-11
    • 2014-02-28
    • 2013-04-17
    • 1970-01-01
    • 2013-08-26
    • 2017-10-15
    • 1970-01-01
    • 2017-12-09
    • 2014-05-07
    相关资源
    最近更新 更多