gpt4 book ai didi

Zedgraph textobj X 位置取决于文本长度?

转载 作者:行者123 更新时间:2023-12-04 06:52:26 25 4
gpt4 key购买 nike

我有一个 Zedgraph textobj,我想将它始终放在相同的 x、y 位置(ASP.NET 图像)。我注意到文本并不总是显示在相同的起始 x 位置。它根据文本的长度而变化。我试图通过用空格填充文本来使文本具有相同的长度。它有一点帮助,但结果并不总是一致的。我将 PaneFraction 用于 coordType。

让一段文本始终显示在相同的 x 位置的正确方法是什么。我使用 textobj 作为标题,因为 native 标题属性总是居中显示,我需要我的标题与图形左对齐。

最佳答案

不,它不取决于文本长度,但是...

这取决于其他各种事情:

  • 文本框的水平和垂直对齐(参见:Location)
  • Pane 的当前大小。字体大小会动态缩放以适应图表大小的变化。
  • 计算合适的位置让 TextObj(或任何其他对象)总是在同一个地方是非常困难的。因此,您需要尽可能避免位置坐标中的任何数字/分数。 ZedGraph 有时会以非常奇怪的方式计算真实位置。

  • 您没有提供任何代码,因此很难判断您是否以及在哪里犯了错误(如果有)。但是,如果我是你,我会做这样的事情:
    TextObj fakeTitle = new TextObj("some title\n ", 0.0, 0.0); // I'm using \n to have additional line - this would give me some space, margin.
    fakeTitle.Location.CoordinateFrame = CoordType.ChartFraction;
    fakeTitle.Location.AlignH = AlignH.Left; // Left align - that's what you need
    fakeTitle.Location.AlignV = AlignV.Bottom; // Bottom - it means, that left bottom corner of your object would be located at the left top corner of the chart (point (0,0))
    fakeTitle.FontSpec.Border.IsVisible = false; // Disable the border
    fakeTitle.FontSpec.Fill.IsVisible = false; // ... and the fill. You don't need it.
    zg1.MasterPane[0].GraphObjList.Add(fakeTitle);

    我正在使用 ChartFraction坐标而不是 PaneFraction (如 drharris 建议)坐标使标题与图表的左边框很好地对齐。否则它会被完全冲到左侧(没有边距等) - 这样看起来更好。

    但请确保您没有设置太大的字体大小 - 它可以在顶部剪裁

    关于Zedgraph textobj X 位置取决于文本长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2932883/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com