2009-06-14 6 views
10

Je n'ai jamais vraiment compris à quoi cette propriété était destinée. Je peux voir qu'il modifie visiblement la conception de la tooltrip et je trouve que le réglage de System sur Windows XP le rend beaucoup mieux avec le style WinForms.Quel est le problème avec la propriété RenderMode de ToolStrip?

Y a-t-il une signification plus profonde ici? Le mode de rendu du contrôle change-t-il du tout et quel mode recommanderiez-vous d'utiliser?

Merci.

Répondre

13

La propriété RenderMode permet au développeur de contrôler avec précision l'affichage de ToolStrip (ou ContextMenu). Lorsque vous définissez le RenderMode sur ManagerRenderMode, vous pouvez créer un rendu personnalisé qui vous permettra de personnaliser l'apparence de ToolStrip. Par exemple, le code ci-dessous dessine un dégradé gris en tant qu'arrière-plan d'un élément dans un ContextMenu qui a actuellement la souris dessus.

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 

Assurez-vous que votre événement Form Load, ou une autre zone qui est appelée avant l'toolstrip est utilisé, vous cédez votre moteur de rendu personnalisé à votre toolstrip:

comment faire
myToolStrip.Renderer = New CustomProfessionalRenderer() 
+0

sans mose sur événement –

Questions connexes