2016-05-04 14 views
10

C'è un modo per personalizzare il margine tra il primo grafico a barre e l'asse Y?Margine minore sul grafico VB.NET

Sono consapevole che v'è la possibilità di impostare IsMarginVisible False:

.AxisX.IsMarginVisible = False 

Ma io non voglio rimuovere completamente il margine, Vorrei solo per regolare un po '. In âddition, vorrei regolare il margine tra i "tick" e il testo dell'etichetta. Ecco un esempio:

Ecco come il grafico appare in questo momento

Old

E come dovrebbe essere simile (spazio davanti e dopo le "zecche") New

Hai un'idea di come risolvere questo problema?

risposta

2

Purtroppo, sembra che non v'è alcuna proprietà margin nel modo avrei voluto uno . Ma sono incappato in questo articolo oggi: http://support2.dundas.com/Default.aspx?article=869

La mia soluzione era impostare il MajorTickMark sulla dimensione dei tick che volevo avere + il margine. Quindi ho impostato il colore su trasparente.

Chart1.ChartAreas(0).AxisY.MajorTickMark.Size = size 
Chart1.ChartAreas(0).AxisY.MajorTickMark.LineColor = Color.FromArgb(0, 0, 0, 0) 

Dopo di che, ho solo aggiunto un HorizontalLineAnnotation per ogni riga nella dimensione e posto che volevo.

Dim minValue As Double = Chart1.ChartAreas("ChartArea").AxisY.Minimum 
Dim maxValue As Double = Chart1.ChartAreas("ChartArea").AxisY.Maximum 
Dim iteration As Integer = CInt((Math.Abs(minValue) + Math.Abs(maxValue))/interval) 

For i As Integer = 0 To iteration 
    Dim line As New HorizontalLineAnnotation() 
    With line 
     .AxisX = Chart1.ChartAreas("ChartArea").AxisX 
     .AxisY = Chart1.ChartAreas("ChartArea").AxisY 
     .AnchorX = 0 
     .Y = i * interval - Math.Abs(minValue) 
     .AnchorOffsetX = offset 
     .Height = 0 
     .LineWidth = 1 
     .Width = (5/Chart1.Width.Value * 1240) 
     .LineColor = Color.FromArgb(128, 128, 128) 
     End With 
    Chart1.Annotations.Add(line) 
Next 

Con questa soluzione, ho ottenuto il risultato che volevo.

0
With Chart1.Series(0) 

     .BackGradientStyle = GradientStyle.TopBottom 
     .Color = Color.Magenta 
     .BackSecondaryColor = Color.Purple 
     .IsValueShownAsLabel = True 
     .Points.DataBind(dtTest.DefaultView, "Month", "Bought", Nothing) 
     *****The pixel point width******.CustomProperties = "DrawingStyle = Cylinder ,PixelPointWidth = 26" 
    End With 

È questo quello che stai cercando?

+0

Grazie per la risposta. Purtroppo, sto già usando CustomProperty "PointWidth" che mi permette di cambiare la larghezza delle singole barre. Ma mentre sto cercando come personalizzare lo spazio, questa risposta non mi aiuta molto. – theyanu

0

provare questo:.

chart1.ChartAreas ("Default") AxisY.ScaleBreakStyle.Spacing = 2

0

Perché non aggiungere manualmente alcuni "spazi vuoti" in ogni valore Y, convertendoli in una stringa come "50.000"?

+0

Questo risolverebbe il problema con gli spazi davanti al segno di spunta, ma non con lo spazio che lo segue. Ma grazie comunque. – theyanu