sabato 29 settembre 2007

ToolStrip, rendering in stile Xp!

Ecco una semplice classe per dare alle ToolStrip uno style Xp-Like (di colore rosso!).
E' soltanto un punto di partenza, Può essere arricchita riscrivendo i metodi che si
occupano del disegno delle tendine piuttosto che dei bottoni..



Class bcc_XpRenderer
Inherits ToolStripProfessionalRenderer

Protected Overrides Sub OnRenderToolStripBackground( _
ByVal e As System.Windows.Forms.ToolStripRenderEventArgs)

Dim r1, r2, r3 As Rectangle
Dim b1, b3 As Drawing2D.LinearGradientBrush

r1 = New Rectangle(0, 0, e.ToolStrip.Width, 10)
r2 = New Rectangle(0, 10, e.ToolStrip.Width, e.ToolStrip.Height - 10)
r3 = New Rectangle(0, e.ToolStrip.Height - 10, e.ToolStrip.Width, 10)

b1 = New Drawing2D.LinearGradientBrush(r1, _
Color.White, _
Color.Red, _
Drawing2D.LinearGradientMode.Vertical)

b3 = New Drawing2D.LinearGradientBrush(r3, _
Color.Red, _
Color.DarkRed, _
Drawing2D.LinearGradientMode.Vertical)

e.Graphics.FillRectangle(b1, r1)
e.Graphics.FillRectangle(Brushes.Red, r2)
e.Graphics.FillRectangle(b3, r3)

b1.Dispose()
b3.Dispose()

End Sub

End Class



Per vedere l'effetto che fa basterà impostare la proprietà Renderer del Toolstrip con new bcc_XpRenderer() ed il gioco è fatto.

2 commenti:

Unknown ha detto...

Interessante.
Ma senti, potresti postare del codice per rimuovere il bordo della toolstrip? Comunque tenti di impostare le proprietà mi resta sempre un po' di bordino, qualsiasi sia il toolstriprenderer che uso.
Grazie x l'aiuto.

alessandro vivi ha detto...

Ciao fedrok, cosa intendi per bordino? credo di non aver capito bene il tuo problema.. se puoi farmi un esempio vedo se posso esserti di aiuto