2009-06-14 2 views
10

Я никогда не понимал, для чего предназначен этот объект. Я вижу, что это заметно меняет дизайн инструментальной панели, и я нахожу, что его установка на систему в Windows XP значительно улучшает стиль WinForms.Что такое свойство RenderMode ToolStrip?

Есть ли здесь более глубокие значения? Может ли вообще измениться способ управления, и какой режим вы бы рекомендовали использовать?

Спасибо.

ответ

13

Свойство RenderMode позволяет разработчику точно управлять отображением ToolStrip (или ContextMenu). Когда вы устанавливаете RenderMode в ManagerRenderMode, вы можете создать собственный рендерер, который позволит вам настроить внешний вид ToolStrip. Например, приведенный ниже код рисует серый градиент в качестве фона элемента в ContextMenu, который в настоящее время имеет над ним курсор.

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 

Просто убедитесь, что в вашем случае Form Load, или какой-либо другой области, которая называется перед использованием ToolStrip, вы назначаете пользовательский визуализатор для вашей ToolStrip:

myToolStrip.Renderer = New CustomProfessionalRenderer() 
+0

как сделать это без переходить на мероприятие –