我一直不太明白这个属性是为了什么而设计的。我可以看到它明显改变了工具条的设计,并且我发现在 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()