none
WinForms; MSChart; Labels an XAxis erscheinen ohne Abstand zur Achse RRS feed

  • Frage

  • Hallo zusammen,

    ich erstelle ein Chart aus einer Datentabelle. Dabei habe ich bei der Darstellung der Labels an der X-Achse einen eigenartigen Effekt:

    Hierzu noch etwas Code:

    		With Chart1
    			.Palette = ChartColorPalette.BrightPastel
    			With .Legends(0)
    				.Font = New Font(.Font.FontFamily, 10, FontStyle.Bold)
    				.BorderWidth = 2
    				.BorderColor = Color.Red
    			End With
    
    			With .ChartAreas(0).AxisX
    				.IsMarksNextToAxis = False
    				.IsLabelAutoFit = False
    				With .LabelStyle
    					.Font = New Font(.Font, FontStyle.Bold)
    					.IsEndLabelVisible = False
    					.IsStaggered = True
    				End With
    			End With
    		End With
    

    So, wie bei 2018 soll es natürlich bei allen Achsenlabels aussehen...

    Grüße-


    Dietrich

    Freitag, 26. Juni 2020 21:35

Antworten

  • Hallo,

    habe es mit kleinem Trick erreicht:

    		With Chart1
    			.Palette = ChartColorPalette.BrightPastel
    			With .Legends(0)
    				.Font = New Font(.Font.FontFamily, 10, FontStyle.Bold)
    				.BorderWidth = 2
    				.BorderColor = Color.Red
    				.LegendStyle = LegendStyle.Column
    			End With
    
    			With .ChartAreas(0).AxisX
    				With .MajorTickMark
    					.TickMarkStyle = TickMarkStyle.OutsideArea
    					.LineColor = Color.Transparent
    					.Size = 3
    					.Enabled = True
    				End With
    				With .LabelStyle
    					.Font = New Font(.Font, FontStyle.Bold)
    					.IsEndLabelVisible = False
    					.IsStaggered = False
    				End With
    			End With
    
    			.DataBindCrossTable(dt.AsEnumerable(), "Name", "bJahr", "Summe", "")
    			For i As Integer = 0 To .Series.Count - 1
    				With .Series(i)
    					.ChartType = SeriesChartType.Column
    					.BorderWidth = 3
    					.IsValueShownAsLabel = True
    					.IsVisibleInLegend = True
    					.CustomProperties _
    								= "LabelStyle=Bottom,DrawingStyle=Emboss"
    					.Font = New Font(.Font.FontFamily, 12, FontStyle.Bold)
    					.LabelForeColor = Color.White
    				End With
    			Next
    		End With

    Das Setzen der MajotickkMarks insbesondere auf Color.Transparent ist die tricky Lösung.

    Grüße-


    Dietrich


    • Als Antwort markiert dherrmann Samstag, 27. Juni 2020 13:35
    • Bearbeitet dherrmann Samstag, 27. Juni 2020 13:36
    Samstag, 27. Juni 2020 13:34