2013-07-26 4 views
1

Я создаю диаграмму с элементами управления .net char. Моя проблема в том, что метки значений и метки оси всегда жирные, если я не использую белый или прозрачный фон!.Net Chart Control label font always bold

.ChartAreas(0).AxisY.LabelStyle.Font = New Drawing.Font("Arial", 8.0F, FontStyle.Regular) 

Я устанавливаю шрифт как обычный, но он отображается только как обычный на моем белом фоне. Я чередующийся фон от белого до серого. шрифт на сером всегда жирный шрифт.

Любые предложения?

Dim myChart As New Chart 
     With myChart 
      .Width = 685 + 130 
      .Height = 45 + letzteZusatz * 2 
      .RenderType = RenderType.ImageTag 
      .AntiAliasing = AntiAliasingStyles.All 
      .TextAntiAliasingQuality = TextAntiAliasingQuality.High 
      If white Then 
       .BackColor = Color.FromArgb(100, 252, 252, 252) 
       white = False 
      Else 
       .BackColor = Color.FromArgb(100, 220, 220, 220) 
       white = True 
      End If 
      .ChartAreas.Add("ChartArea1") 
      .ChartAreas("ChartArea1").Area3DStyle.Enable3D = False 
      With .ChartAreas(0) 
       .BackColor = Color.Transparent 
       .BorderWidth = 0 
       .AxisX.LineWidth = 0 
       .AxisY.LineWidth = CType((0 + (letzteZusatz * 0.1)), Integer) 
       .AxisY.LineColor = Color.FromArgb(100, 194, 195, 192) 
       .AxisY.Minimum = minimum 
       .AxisY.Maximum = CType(maximum * 1.1, Integer) 
       .AxisX.LabelStyle.Enabled = False 
       .AxisY.LabelStyle.Enabled = True 
       .AxisY.LabelStyle.Angle = 0 
       .AxisY.LabelStyle.Format = "N0" 
       .AxisY.LabelStyle.Font = New Drawing.Font("Arial", 8.0F, FontStyle.Regular) 
       .AxisY.IsLabelAutoFit = False 
       .AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None 
       .AxisX.MajorGrid.Enabled = False 
       .AxisY.MajorGrid.Enabled = True 
       .IsSameFontSizeForAllAxes = True 
       .AxisY.MajorGrid.LineColor = Color.FromArgb(100, 194, 195, 192) 
       .AxisY.MajorTickMark.Enabled = True 
       .AxisY.MinorTickMark.Enabled = False 
       .AxisX.MajorTickMark.Enabled = False 
       .AxisX.MinorTickMark.Enabled = False 
       .AxisY.MajorTickMark.LineColor = Color.FromArgb(100, 194, 195, 192) 
       .BorderWidth = 0 
       .AlignmentOrientation = AreaAlignmentOrientations.Vertical 
       .InnerPlotPosition = New ElementPosition(16, 0, 84, CType((100 - (letzteZusatz * 3)), Single)) 
      End With 

      .DataBindTable(BuildChartTabel(o, seite), "Name") 
For Each s As Series In myChart.Series 
      s.ChartType = SeriesChartType.Bar 
      s.BorderWidth = 0 
      s.MarkerSize = 0 
      s.IsValueShownAsLabel = True 
      s("PixelPointWidth") = "45" 
      For Each p As DataPoint In s.Points 
       p.BackImage = "~/img/bg_chart.png" 
       p.BackImageWrapMode = ChartImageWrapMode.Tile 
       p.BorderWidth = 0 
       p.MarkerSize = 0 
      Next 
     Next 
    End With 

    Using chartimage = New FileStream("D:\test.png", FileMode.Create) 
     myChart.SaveImage(chartimage, ChartImageFormat.Png) 
     chartimage.Flush() 
    End Using 
+0

Имеет ли стиль фона свойство, которое устанавливает шрифт в жирный шрифт? – christiandev

+0

Я просто устанавливаю: .BackColor = Color.FromArgb (100, 220, 220, 220), не может найти какие-либо другие варианты фона, чем устанавливать цвет или изображение. –

ответ

2

Я была такая же проблема с MS Chart, ярлык/текст легенды всегда смелый, пока я не добавить TextAntiAliasingQuality атрибут:

chart.TextAntiAliasingQuality = TextAntiAliasingQuality.Normal;

+0

Это работает, в моем случае TextAntiAliasingQuality.SystemDefault немного лучше. – Rm558

1

Попробуйте это (где ChartAreas [ "A"] = ваш ChartAreas (0)):

chart1.ChartAreas["A"].BackColor = Color.Gray; 
chart1.BackColor = Color.Gray; 
// 
chart1.ChartAreas["A"].AxisY.LabelStyle.Font = new System.Drawing.Font(chart1.ChartAreas["A"].AxisY.LabelStyle.Font, 
                     FontStyle.Regular); 
MessageBox.Show(chart1.ChartAreas["A"].AxisY.LabelStyle.Font.Bold.ToString()); 

Также попробуйте изменить шрифт, шрифт, который имеет как регулярный и Жирный внешний вид

например:

System.Drawing.Font f = new System.Drawing.Font("Tahoma", 10, FontStyle.Regular); 
chart1.ChartAreas["A"].AxisY.LabelStyle.Font = f; 
+0

смелое свойство является ложным! –

+0

Вы пытались изменить шрифт на что-то еще? Возможно, шрифт, который вы выбираете, имеет только смелый вид? Я думаю, что по умолчанию для диаграмм является «Без засечек». – Recipe

+0

попробовал разные шрифты! arial не имеет смелого вида, потому что он отображается как обычный на белом фоне! –

0

Я заметил, что AntiAliasi ng может влиять на шрифты.

Попробуйте изменить его на AntiAliasing = AntiAliasingStyles.Graphics.

0

Pleasechange свойства осины: диаграммы TextAntiAliasingQuality на "Normal"

пример:

<asp:Chart ID="ActionChart" runat="server" Height="154px" 
       Width="282px" TextAntiAliasingQuality="Normal">