정말, 그렇게 할 수있는 방법을 볼 : 내가보고 싶은
. 그 CustomLabels
모든 투명을 확인하고 : 그 이유는 개발자가 여기에
가
해결입니다 .. 하나 이상의 추가 행에 이르렀 시작하면 단순히 수평 레이블 공간이 충분하지 않을 수 있습니다 결정했다 아마
xxxPaint
이벤트에서 원하는대로을 그립니다.
CustomLabel cl = new CustomLabel();
cl.ForeColor = Color.Transparent;
cl.RowIndex = 1;
...
그리고이 같은 그리기 코드 :
내가
CustomLabels
준비 :
private void chart1_PostPaint(object sender, ChartPaintEventArgs e)
{
Axis ay = chart1.ChartAreas[0].AxisY;
foreach (var cl in ay.CustomLabels)
{
if (cl.RowIndex == 1)
{
double vy = (cl.ToPosition + cl.FromPosition)/2d;
int y = (int)ay.ValueToPixelPosition(vy);
e.ChartGraphics.Graphics.DrawString(cl.Text,
cl.Axis.TitleFont, Brushes.DarkRed, 0, y);
}
}
}
자신의 취향의 Font
및 Brush
를 사용하십니까 여기
은 예입니다 . 다음은 결과입니다 : 당신이 더 많은 공간을 만들어야 할 수도 있습니다
참고 'auto
'에 평소와 같이, 100%
에 있고 둘의 ChartArea.Position
또는 ChartArea.InnerPlotPosition
, 기본적를 조정 왼쪽 .
더 많은 행을 보려면 cl.RowIndex < 0
으로 변경하고 DrawString
의 x 위치 값을 확인해야합니다.
출처
2017-03-03 08:55:00
TaW
답장을 보내 주셔서 감사합니다. 나는 마지막 비상 사태로 그 길을 생각했다. 내 작업은 단순히 모든 레이블을 사용자 지정하고 rowindex = 0으로 만드는 것이 더 쉬울 것이라고 생각합니다. – Prain
실제로, 그 옵션이 있다면, 나는 또한 그것을 선호하는 것 같아요 .. – TaW