【问题标题】:Chart X Axis wrong labels图表 X 轴标签错误
【发布时间】:2018-04-25 10:58:04
【问题描述】:

我有一个图表和一个datagridview,它们都是数据绑定到字典,例如:

freqChart.Series[0].Points.DataBindXY(symCount.Keys, symCount.Values);

在下面的屏幕截图中,您可以看到 X 轴标签/键名称的差异。 Datagridview 正确显示它,而如果它是标点字符,图表会翻转字符。有什么问题?我该如何解决?

屏幕截图(图表和 DataGridView):

【问题讨论】:

  • 你到底有什么字符?您可以将它们作为文本发布吗?
  • “E,H”、“,HZ”、“'GS”、“ZE”、“WB'” - 像这样?
  • 好的,你如何将字典绑定到dgv?没有像你展示的那样发生在这里。很难想象可能是什么原因,即使是从右到左也不会这样做。也没有我能想到的任何 Label.LabelStyle.Format 尝试使用调试器查看值。
  • foreach (KeyValuePair item in symCount3) symDgv3.Rows.Add(item.Key, item.Value);调试器显示相同的键名,因为它们应该是,数据绑定后没有任何变化。另外,为了确认字典没有发生任何事情,图表先获取数据,然后是datagridview,如果字典中的某些内容发生了变化,那就很奇怪了
  • 我无法使用您在此处发布的代码重现此行为。问题似乎出在其他地方。请创建a complete, runnable example。

标签: c# winforms charts mschart


【解决方案1】:

我的评论是错误的;事实上,当你打开RightToLeft 时,这是一个有趣的效果。

有几个值,但这个足以重现:

freqChart.RightToLeft = RightToLeft.Yes

这就是您想要的,然后您也可以为 DGV 开启它;或者它不是然后简单地关闭它..

freqChart.RightToLeft = RightToLeft.No

如您所见,它是一个 Control.Property,因此它适用于所有控件。还要注意:RightToLeft 属性是环境属性,因此它会传播到子控件。

但我不能说为什么它表现得如此奇怪。文档基本上谈论对齐,而不是标点符号。如果你有兴趣,你可以在wikipedia阅读它

【讨论】:

  • +1,这就是 OP 应该发布 MCVE 的原因。至于原因:标点符号用于从右到左的系统中,因此支持某种级别的bi-directionality(例如comma)。拉丁字母 OTOH 是从左到右的,因此它们不会改变位置。
  • 有趣的链接!根据它的说法是相反的:标点符号是“中性的”,所以不要移动。大多数字母字符是“强”字符,即具有明确方向性的字符。 - 哦,好吧,即使 OP 想要它,这似乎是一个雷区.. 当 punct.char 位于中间时,什么都没有改变..
猜你喜欢
  • 2015-10-18
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-01
  • 1970-01-01
相关资源
最近更新 更多