将ZedGraph图例定位在右中而不是右上角?
是否有方法使用ZedGraph定位图例,使其位于右侧,但垂直居中。使用:将ZedGraph图例定位在右中而不是右上角?,graph,zedgraph,Graph,Zedgraph,是否有方法使用ZedGraph定位图例,使其位于右侧,但垂直居中。使用: output.Legend.Position = ZedGraph.LegendPos.Right 将图例放置在右上角,但在饼图旁边,看起来未对齐。有没有办法让图例垂直居中? 更改output.Legend.Location.Y似乎没有效果,尝试output.Legend.Location.AlignV=ZedGraph.AlignV.Center也没有效果 作为对以下第一个答案的回应添加 浮动、减小图表大小并将标签定位
output.Legend.Position = ZedGraph.LegendPos.Right
将图例放置在右上角,但在饼图旁边,看起来未对齐。有没有办法让图例垂直居中?
更改output.Legend.Location.Y
似乎没有效果,尝试output.Legend.Location.AlignV=ZedGraph.AlignV.Center也没有效果
作为对以下第一个答案的回应添加
浮动、减小图表大小并将标签定位在垂直中心,这比我以前管理的要好。不幸的是,它有一个副作用,即图例切换到多列,并试图占据整个图表区域的一半宽度,因此通常与图表重叠(见图)。查看ZedGraph源代码,此较宽模式用于除左侧和右侧之外的所有布局
位置
仅在图例时启用。位置
设置为浮动
你可以这样做:
图例部分绘制在图表内部,这可能是不需要的“特征”:
要解决此问题,我相信您还必须手动调整图表的大小:
output.Chart.Rect = new RectangleF(xstart, ystart, xsize, ysize);
位置
仅在图例时启用。位置
设置为浮动
你可以这样做:
图例部分绘制在图表内部,这可能是不需要的“特征”:
要解决此问题,我相信您还必须手动调整图表的大小:
output.Chart.Rect = new RectangleF(xstart, ystart, xsize, ysize);
安德斯的回答几乎奏效了,只是有一个副作用,那就是改变了传说的宽度。这让我下载了源代码来找出原因,我发现legend定位代码实际上非常简单<代码>LegendPos.Right
在代码中仅引用了两次,两次都在Legend.CalcRect
添加新的LegendPos.MiddleRight
只需要将其添加到枚举中,将MiddleRight
的案例添加到运行与Right
相同代码的第一个开关中。在CalcRect
中的第二个开关中:
case LegendPos.MiddleRight:
newRect.X = clientRect.Right - totLegWidth;
newRect.Y = tChartRect.Top + tChartRect.Height / 2 - totLegHeight / 2;
tChartRect.Width -= totLegWidth + gapPix;
break;
这与LegendPos.Right的代码相同,除了newRect.Y行。安德斯的答案几乎奏效,除了它有改变图例宽度的副作用。这让我下载了源代码来找出原因,我发现legend定位代码实际上非常简单<代码>LegendPos.Right在代码中仅引用了两次,两次都在
Legend.CalcRect
添加新的LegendPos.MiddleRight
只需要将其添加到枚举中,将MiddleRight
的案例添加到运行与Right
相同代码的第一个开关中。在CalcRect
中的第二个开关中:
case LegendPos.MiddleRight:
newRect.X = clientRect.Right - totLegWidth;
newRect.Y = tChartRect.Top + tChartRect.Height / 2 - totLegHeight / 2;
tChartRect.Width -= totLegWidth + gapPix;
break;
这与LegendPos.Right的代码相同,除了newRect.Y行。谢谢,回答得好,虽然有一个副作用,即图例一旦浮动就会变宽,因此要么与图表重叠,要么图表必须非常小。我用图片更新了这个问题。我接受了这个答案,因为它引导我找到了最终的解决方案。谢谢,这个答案很好,尽管有一个副作用,即图例一旦浮动,就会变得非常宽,所以要么与图表重叠,要么图表必须非常小。我用图片更新了这个问题。我接受了这个答案,因为它引导我找到了最终的解决方案。斯图尔特,干得好!我绝对认为你应该提供这个补丁给,我相信它也会对其他人有用。斯图尔特,做得好!我绝对认为您应该向提供此修补程序,我相信它也会对其他人有用。