C# 删除Devexpress图表控制窗格之间的所有空格

C# 删除Devexpress图表控制窗格之间的所有空格,c#,devexpress,C#,Devexpress,我目前正在使用一个DevExpress图表控件,其中几个窗格垂直堆叠在彼此的顶部。窗格可以在运行时单独显示或隐藏,但其内容在创建后不会更改。我想删除窗格之间的所有空间,使每个窗格的边框与上方/下方窗格的边框完全齐平 我已经使用以下代码将PaneDistance设置为0,这通常正是我想要的: XYDiagram diagram=chartControl1.将图表作为XYDiagram; diagram.paneInstance=0 然而,我遇到的问题是,在下面的屏幕显示中可以看到,y轴上的标签有时

我目前正在使用一个DevExpress图表控件,其中几个窗格垂直堆叠在彼此的顶部。窗格可以在运行时单独显示或隐藏,但其内容在创建后不会更改。我想删除窗格之间的所有空间,使每个窗格的边框与上方/下方窗格的边框完全齐平

我已经使用以下代码将PaneDistance设置为0,这通常正是我想要的:
XYDiagram diagram=chartControl1.将图表作为XYDiagram;
diagram.paneInstance=0

然而,我遇到的问题是,在下面的屏幕显示中可以看到,y轴上的标签有时会垂直延伸到窗格本身边缘的上方或下方,这迫使窗格之间存在空间

前两个窗格之间根本没有空间,这正是我想要的,但问题可以在底部的whree窗格中看到。第二个窗格上的“0”标签略微延伸到表的下方,因此添加了空白以使其适合。底部的两个轴都有延伸到窗格外的标签,因此添加了更多的空间

我试着编辑我能想到的这些轴的每一个属性,但是没有任何东西能够删除这个空白。看起来只是让外部标签向上或向下推,使它们位于窗格高度内就可以了。有人对我如何让它正常工作有什么想法吗

编辑:我要提到的是,在这个应用程序的不同部分,我有一组不同的面板,水平旋转和对齐,它们的轴标签执行我希望它们在上述情况下执行的操作:

您可以看到“0”和“300”标签稍微偏离中心,以适合其自己的窗格,因此它们不会向外延伸并产生空白。我不需要触碰任何代码就可以做到这一点。这可能是因为这些都是同一个轴的实例,而不这样做的是不同的轴,这使得它们在这种情况下玩得很好

编辑2:

以下是我在将axis
SideMarginsValue
s设置为0和
AlwaysShowZeroLevel
设置为false后得到的结果。越来越近了


如果您无法使用DX chart的公共属性实现所需的功能,您仍然可以尝试一个技巧

在浏览器中,选择“检查图表区域”(Chrome中的CTRL+SHIFT+I),查找实际图表的元素或父元素,并查看DX为其分配了哪些类/ID

然后选择最近的元素类/id,并通过指定负边距/填充来尝试使用其css,如:

.dxtcLite.dxtc-top .dxtc-stripContainer {
        margin-botton: -2px!important;
}
这当然是一个肮脏的解决方案,但有时它是唯一有效的

但是,如果在图表窗格之间没有任何HTML类型的边距/填充,但空白空间实际上是生成的图表图像的一部分,那么您唯一可以做的就是继续使用影响实际图表图像生成的DX图表属性。p> 更新:

您是否尝试将属性设置为0

diagram.AxisY.WholeRange.SideMarginsValue = 0;
另一个选项是尝试始终使用隐藏0级轴标签 :

或者尝试设置轴值的最大值以排除边界标签:

// depending on possible min/max values for each pane 
diagram.AxisY.WholeRange.SetMinMaxValues(5,  35 ); 

让我知道,如果以上任何帮助

将SideMarginsValue设置为0和AlwaysShowZeroLevel的组合非常接近我想要的!较低的0标签的问题已经解决,但不幸的是,较高的标签(如我第一次截图中的40000标签)仍然可能出现并创建一些空间。我也希望我能避免删除侧边距,使我的栏正好撞到窗格的顶部,但我可以接受它(尽管能够设置上下边距会很好…)。不过我会继续玩MinMaxValues,我打赌有办法解决剩下的问题…@jmatula你控制发送给图表控件的数据,对吗?如果在将图表绑定到数据之前尝试获取上边界值,并使用稍小的最大值设置SetMinMaxValues,以使上标签不显示,该怎么办?抱歉,没有看到您的完整评论。是,使用最小/最大轴标签值播放。如果答案有帮助的话,我希望能投赞成票。谢谢。@jmatula我检查了一些图表,发现除了PaneDistance=0之外,它们还设置了LabelsResolveOverlappingMinIndex属性,例如:
。因此,也许您也可以尝试设置/更改该属性。不幸的是,该属性(
diagram.Label.ResolveOverlappingOptions.MinIndent)在这种情况下似乎没有帮助。在我看来,它处理的是同一轴上的重叠标签,而不是不同轴上的重叠标签。好建议!
// depending on possible min/max values for each pane 
diagram.AxisY.WholeRange.SetMinMaxValues(5,  35 );