我从来没有完全理解这个属性的设计目的。我可以看到它明显改变了工具栏的设计,我发现将其设置为Windows XP上的System可以更好地符合WinForms样式。
这里是否有更深层次的含义?控件呈现方式是否会发生任何变化,您推荐使用哪种模式?
谢谢。
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
只需确保在表单加载事件或其他在使用工具栏之前调用的区域中,将自定义渲染器分配给您的工具栏:
myToolStrip.Renderer = New CustomProfessionalRenderer()