首页 > 解决方案 > WinForms图表缩放X轴标签在缩放时暂时消失

问题描述

我有一个看起来像这样的图表:

正常视图

当我放大一个部分时,标签会消失:

第一次缩放

但是,我可以通过一直向右滚动并释放鼠标来取回标签:

放大,向右滚动

然后当我向左滚动时,所有标签都可见:

缩放,向左滚动

这种行为真是太奇怪了,我完全不知道是什么原因造成的,甚至是如何调试。

有人对我可以尝试解决的问题有任何想法吗?我希望标签在最后一张图片中显示,但在第一次缩放时。

标签: winformscharts

解决方案


看起来其他人也有类似的问题,所以我将尝试结合我在网上找到的几个答案,以帮助解决您的问题。

John(DevExpress 支持)说:
AutoLayout 功能似乎导致了这个问题。请将 ChartControl.AutoLayout 属性设置为 False。这应该使轴标签元素可见。

https://www.devexpress.com/Support/Center/Question/Details/T328948/x-axis-labels-disappear-in-chartcontrol

Valdemar(DevExpress 支持)说:
我建议您使用 Axis2D.ResolveOverlappingOptions 属性。将 AllowHide 设置为 False:

[XAML]
<dxc:XYDiagram2D.AxisX>  
    <dxc:AxisX2D >  
        <dxc:AxisX2D.Label>  
            <dxc:AxisLabel>  
                <dxc:Axis2D.ResolveOverlappingOptions>  
                    <dxc:AxisLabelResolveOverlappingOptions AllowRotate="True" AllowStagger="True"  AllowHide="False"  />  
                </dxc:Axis2D.ResolveOverlappingOptions>  
            </dxc:AxisLabel>  
        </dxc:AxisX2D.Label>  
    </dxc:AxisX2D>  
</dxc:XYDiagram2D.AxisX>

https://www.devexpress.com/Support/Center/Question/Details/Q489042/chart-axis-labels-disappearing-when-chart-is-resized

SharpStatistics 说:
我可以复制您描述的问题的唯一方法是将 x 轴 Label.style 间隔设置为特定值,例如,

area1.AxisX.LabelStyle.Interval = 100;  

然后当我放大图表时,如果缩放的 x 轴部分小于 100,我看不到任何标签。

loi-se(OP)回复:
感谢您的建议!但据我所知,我没有在任何地方设置 xaxis labelstyle,我只是使用: Chartarea1.AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount

这在 yaxis 的情况下工作正常,但 xaxis 似乎按照自己的意愿行事。也许我应该更新我的 .net 框架安装并获取最新版本的图表组件?还有其他建议吗?

https://social.msdn.microsoft.com/Forums/vstudio/en-US/d345d4a3-a4be-4b41-9c83-9a9d9dbb69b9/the-labels-of-the-xaxis-are-disappearing-when-i-zoom- in?forum=MSWinWebChart

这个用于 SSRS 报告,但我假设它使用相同(或类似的库)并支持此链接正上方的链接。

在使用图表设计 SSRS 报告时,您可能会注意到 X 或 Y 轴上的某些标签没有显示,这是因为它非常智能,可以检测到您真正想要的(不是!)。

要显示所有标签,请按照以下步骤操作:

右键单击 X 或 Y 轴,单击属性:

将间隔设置为 1:

中提琴!

https://randypaulo.com/2012/02/20/ssrs-chart-label-missing-xy-axis-missing/

这就是我能找到的所有相似之处,而无需花费更多时间进行研究。希望这里有帮助!


推荐阅读