2017-01-17 87 views
0

我最近不得不更改x軸標籤的大小以確保它們在打印時易於辨認。這樣做時,標籤和軸之間的邊距就會出現,這似乎取決於字體大小和數據點的數量。標籤和y軸之間的邊距,如果x軸上的標籤顯示爲角度

刪除標籤上的角度(AxisX.LabelStyle.Angle = 0)時,此邊距似乎消失。不幸的是,這不是一個解決方案,因爲標籤上的角度是項目的要求。

設置IsMarginsVisible並未解決問題。

有什麼辦法可以去掉這個邊距嗎?

截圖可視化的問題:

With angle and unintended marginNo margin, but no angle

的MCVE顯示問題在這裏可供選擇:https://www.dropbox.com/s/4y0nwj8bymz6m3q/MSChart%20-%20misplaced%20labels.zip?dl=0

請注意:前一段時間,我遇到了類似的問題,如果該號碼的元素變得巨大,這也是未解決的(MSChart axis misplaced for huge charts)。我可以提出任何問題和建議,以避免成爲不受歡迎的問題。

P.S.如果你覺得這個問題的想法是沮喪的,請告訴我爲什麼我可以嘗試改進它(因爲在這個問題不清楚或缺少搜索標記的情況下我無法看清自己)。謝謝。

+0

好問題imo,有問題的邊際實際上很難找到! Maby添加一個箭頭或一些指示,指出您要引用的邊距,因爲它會讓條形圖表上的X軸和Y軸變得混亂。不幸的是,我認爲這是一個錯誤,我會試着回答爲什麼我認爲這是一個解決方法。 – NLindbom

+0

很抱歉地說,但是我發現沒有好的解決方法,提供瞭解釋 – NLindbom

回答

1

不幸的是我認爲這是一個所有類型條形圖的錯誤。要清楚,因爲該問題已被降低:如果位置從自動更改爲0,100,100,空白(多個空白)會出現在圖表底部(條形圖表的Y軸),只要X軸文本是通過chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 30;,如在提供的例子或例如。 chart1.ChartAreas[0].AxisX.LabelAutoFitStyle = LabelAutoFitStyles.LabelsAngleStep30;

有幾個原因,我懷疑beeing一個bug,即這個奇怪的行爲:

  1. 如果你擠圖表的寬度在提供的代碼(相同的問題截圖)一起保證金不斷增加,而正確的行爲不會改變。
  2. 您可以通過將圖表類型更改爲任何類型的柱狀圖進一步驗證此問題
  3. 此行爲僅在主X軸中顯而易見,而不是在輔助中顯而易見。

我試圖CustomLabels,並扭轉了X軸,而是使用次Y軸,但在底部的任何軸得到它的計算不正確的大小。事實上,即使使用輔助Y軸,也必須禁用主功能,以避免在底部進行空白區域縮放。

這意味着最明顯的選項黯然減少到:

  • 需要很多的更多的工作,你可以得出自己的標籤utlizing的Post_Paint事件(Example
  • 如果可能的話,可以考慮一列圖表,其行爲正確
  • 或者使用次Y軸的頂部,而不是

無論後者drasticall y改變圖表的外觀,但確實讓您控制邊界。總之:不,這似乎是一個錯誤,沒有辦法通過設置「正確」屬性來刪除邊距。

+0

非常感謝您的檢查和努力。我也會認爲這是條形圖內的一個錯誤,不幸的是,修復似乎無法實現。我想我將不得不處理其中一個缺點(因爲你說過,到目前爲止每個解決方法都伴隨着外觀上的明顯變化)。 – DanielT