在下面樣本的藍色曲線中,第一個數據點(74.2%)顯示在曲線下方,而另外3個數據點顯示在曲線上方(85.9%,94.6%,104.7%)。.net圖表 - 如何強制數據標籤始終顯示在曲線上方?
我最初認爲標籤會顯示在某個點的下方,因爲那個點離圖表區域頂端太近。實際上,一個標籤是否被打印在一個點的上方或下方似乎是相當隨意的(你會注意到第一個點在Y軸上也是'最低')。
有沒有辦法強制標籤總是打印上述各自的點?
在下面樣本的藍色曲線中,第一個數據點(74.2%)顯示在曲線下方,而另外3個數據點顯示在曲線上方(85.9%,94.6%,104.7%)。.net圖表 - 如何強制數據標籤始終顯示在曲線上方?
我最初認爲標籤會顯示在某個點的下方,因爲那個點離圖表區域頂端太近。實際上,一個標籤是否被打印在一個點的上方或下方似乎是相當隨意的(你會注意到第一個點在Y軸上也是'最低')。
有沒有辦法強制標籤總是打印上述各自的點?
您沒有發佈任何repro代碼,很難從屏幕截圖中反向設計代碼。當你有這樣一個非常具體的問題時,千萬不要跳過這個。
猜測它,你正在與「智能標籤」功能戰鬥。這有些不可避免地意味着它會有自己的想法遲早不會做你希望的事情。您有某些通過Series.SmartLabelStyle屬性控制它的使用方式。首先肯定要嘗試的是將它的Enabled property設置爲false,這樣它就不再聰明。下一個你可以修補的是它的AllowOutsidePlotArea property。
如果這些都不會讓您感覺到任何地方,那麼請考慮利用Chart.PostPaint事件並自己繪製這些標籤。讓你完全控制你放置它們的位置。
我不想禁用SmartLabelStyle,而是調整其參數。你應該看看MovingDirection Property。這可以控制標籤被允許移動的方向。 所以你可能想將它的值設置爲'Top',爲了使它看起來更平坦,你應該指定Min和Max移動距離到相同的數量。
謝謝,但我相信MovingDirection屬性是用於在系列之間相互重疊的標籤,而不是用於與系列圖形重疊的標籤。 – Jerome