我使用PieItem AddPieSlice方法來構建我的餅圖,但無法弄清楚如何處理有時重疊的標籤。有沒有人找到解決方案或任何形式的解決方法?ZedGraph - 如何修復餅圖中的重疊標籤?
不幸的是,事實證明,我不能發表圖片尚未...
我使用PieItem AddPieSlice方法來構建我的餅圖,但無法弄清楚如何處理有時重疊的標籤。有沒有人找到解決方案或任何形式的解決方法?ZedGraph - 如何修復餅圖中的重疊標籤?
不幸的是,事實證明,我不能發表圖片尚未...
的IsPreventLabelOverlap
財產也許嘗試爲true。不幸的是,這通常會擦除重疊的標籤,而不會將其展開。所以考慮到這一點,請參閱下文。
沒有一個圖書館可以按照您的要求提供,但有postpaint
選項。不幸的是Zedgraph不能修復重疊的標籤(我試了很長時間,沒有運氣)。然而,有一個解決方法,但它是乏味的,你必須真正考慮放置你的圖形標籤的位置。請參見下面的代碼一個簡單的方法來添加一個標籤:
protected void Chart1_PostPaint(object sender, ChartPaintEventArgs e)
{
if (e.ChartElement is Chart)
{
// create text to draw
String TextToDraw;
TextToDraw = "Chart Label"
// get graphics tools
Graphics g = e.ChartGraphics.Graphics;
Font DrawFont = System.Drawing.SystemFonts.CaptionFont;
Brush DrawBrush = Brushes.Black;
// see how big the text will be
int TxtWidth = (int)g.MeasureString(TextToDraw, DrawFont).Width;
int TxtHeight = (int)g.MeasureString(TextToDraw, DrawFont).Height;
// where to draw
int x = 5; // a few pixels from the left border
int y = (int)e.Chart.Height.Value;
y = y - TxtHeight - 5; // a few pixels off the bottom
// draw the string
g.DrawString(TextToDraw, DrawFont, DrawBrush, x, y);
}
這將創建一個標籤爲您和您可以選擇在哪裏畫它。然而這是棘手的部分。您需要基本查明您的屏幕上的圖形以及該圖上的點。非常麻煩,但如果它是一個靜態圖,那麼它不應該成爲一個問題。我知道這是一種黑客行爲,但它起作用,並且這似乎是所有人都想出來的。
讓我們知道你想出什麼,或者如果你嘗試這個!
謝謝你的回覆。不幸的是,圖表並不是靜態的,但我一定會考慮它,如果我想出了一個合理的解決方案,我會回來。 – 2013-03-22 16:45:49
<---這裏是圖像,如果有人想明白我想弄清楚什麼 – 2013-02-28 16:00:37