2012-11-04 34 views
2

我在我的c#項目中使用ZedGraph。如何在zedgraph中設置autosize字體

我的X軸有文本標籤(用於條形圖),但默認設置爲XAxis.Scale.IsPreventLabelOverlap = true每隔一秒鐘標籤丟失。當我將其更改爲falseXAxis.Scale.MajorStep = 1時,會顯示每個標籤,但字體大小保持不變,並且標籤重疊。

有沒有辦法改變標籤的字體大小?或者最好將它切換到自動大小?

回答

0

很久以前我已經忘記了這個問題。 我發現我自己的解決方案,它不是那麼幹淨。我改寫了PaneBase.CalcScaleFactor()方法,將return scaleFactor;更改爲return scaleFactor * 0.75f;。現在它的工作原理應該如此。

1

我不想讓你知道,但據我所知,你不能直接更改軸標籤字體大小。您可以更改軸標題字體大小,但不能更改標籤本身。你可以改變他們是否自動調整大小,然後按照他們自動調整的大小進行調整,看起來就像你想要的那樣,最終可以幫助你。 This是我正在尋找的資源。

PaneBase.IsFontsScaled屬性設置爲true,然後可以使用PaneBase.ScaleFactor()方法更改比例因子。仔細看看我鏈接的資源,我認爲你將能夠完成。我沒有安裝ZedGraph,所以我無法測試它,但我確信它會是這樣的。

祝你好運!

+0

我忘了回答這個問題。使用ZedGraph的項目早已落後於我。我還沒有找到任何其他解決方法,而不是與'PaneBase.CalcScaleFactor()'方法搞亂(你可能在你的答案中改變了方法的名稱)。無論如何,加上你;) –

1

我的解決方案是;

curve.Label.FontSpec = zg1.GraphPane.Legend.FontSpec.Clone();

curve.Label.FontSpec.Size = 6;