我有一個Zedgraph textobj,我想總是放在同一個x,y位置(ASP.NET圖像)。我注意到文本並不總是顯示在相同的起始x位置。它根據文本的長度而變化。我試圖通過填充空格來使文本具有相同的長度。它有一點幫助,但結果並不總是一致的。我使用PaneFraction作爲coordType。Zedgraph textobj X位置取決於文本長度?
讓一段文字始終顯示在同一個x位置的正確方法是什麼?我使用textobj作爲標題,因爲原生標題屬性總是顯示居中,我需要將我的標題左對齊到圖形。
我有一個Zedgraph textobj,我想總是放在同一個x,y位置(ASP.NET圖像)。我注意到文本並不總是顯示在相同的起始x位置。它根據文本的長度而變化。我試圖通過填充空格來使文本具有相同的長度。它有一點幫助,但結果並不總是一致的。我使用PaneFraction作爲coordType。Zedgraph textobj X位置取決於文本長度?
讓一段文字始終顯示在同一個x位置的正確方法是什麼?我使用textobj作爲標題,因爲原生標題屬性總是顯示居中,我需要將我的標題左對齊到圖形。
你使用這個構造函數嗎?
TextObj(text, x, y, coordType, alignH, alignV)
如果沒有,那麼可以肯定你設置alignH到AlignH.Left
和alignV至AlignV.Top
。那麼X和Y應該是0,0。PaneFraction
對於coordType應該是正確的選項,除非我錯過了你的意圖。
或者,您可以簡單地下載Zedgraph代碼,將其編輯爲左對齊標題(或者更好,爲此提供一個選項,原本應該完成),然後在生產中使用它。美的開源。
不,它不依賴於文字lenght,但是......
這取決於各種其他的東西:
您還沒有提供任何代碼,因此很難判斷您是否犯了錯以及在哪裏犯了錯誤(如果有)。但是,如果我是你,我會做這樣的事情:
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建議)座標有標題與圖表的左邊框對齊很好。否則它會完全衝到左側(沒有餘量等) - 這看起來更好。
但要確保你沒有設置過大字體大小 - 它可以在頂部
無論我給location.X&location.Y的值如何,ChartFraction總是將文本放在圖表的中間。 – 2010-06-09 18:50:19
請確保您將對象添加到'GraphPane'對象,而不是'MasterPane'對象。看看我的代碼,它可以與最新版本的ZG完美配合。也許你有一些舊的版本? – Gacek 2010-06-09 19:59:02
X被剪切,y是0的構造函數,但location.x&location.y稍後修改。 – 2010-06-09 18:51:25
其中重要的部分是確保AlignH和AlignV分別設置爲左和頂。否則,它默認爲兩個中心。 – drharris 2010-06-10 01:23:45