2009-06-14 4 views
10

Ich habe nie verstanden, wofür diese Eigenschaft entworfen wurde. Ich kann sehen, dass es das Design des Toolstrips sichtbar verändert, und ich finde, dass es auf Windows XP besser eingestellt ist und viel besser zum WinForms-Stil passt.Was ist mit der RenderMode-Eigenschaft des ToolStrip zu tun?

Gibt es hier eine tiefere Bedeutung? Ändert sich die Art und Weise, in der das Steuerelement gerendert wird, und welcher Modus wird empfohlen?

Danke.

Antwort

13

Mit der RenderMode-Eigenschaft kann der Entwickler die Anzeige des ToolStrip (oder ContextMenu) genau steuern. Wenn Sie den RenderMode auf ManagerRenderMode festlegen, können Sie einen benutzerdefinierten Renderer erstellen, mit dem Sie das Erscheinungsbild des ToolStrips anpassen können. Der folgende Code zeichnet z. B. einen grauen Farbverlauf als Hintergrund für das Element in einem ContextMenu, über dem sich derzeit die Maus befindet.

Class CustomProfessionalRenderer 
    Inherits ToolStripProfessionalRenderer 

    Protected Overrides Sub OnRenderMenuItemBackground(ByVal e As ToolStripItemRenderEventArgs) 
     Dim r As Rectangle = e.Item.ContentRectangle 

     If e.Item.Selected Then 
     Dim b = New LinearGradientBrush(r, Color.FromArgb(255, 227, 224, 215), Color.White, LinearGradientMode.Vertical) 
     Try 
      e.Graphics.FillRectangle(b, e.Item.ContentRectangle) 
     Finally 
      b.Dispose() 
     End Try 
     End If 
    End Sub 

End Class 

nur sicherstellen, dass in Ihrer Form Load-Ereignisse oder einen anderen Bereich, der aufgerufen wird, bevor der Toolstrip verwendet wird, können Sie Ihre benutzerdefinierten Renderer zu Ihrem Toolstrip zuordnen:

myToolStrip.Renderer = New CustomProfessionalRenderer() 
+0

, wie es zu tun, ohne mose über das Ereignis –