我从未完全理解这个属性的设计目的。我可以看到它明显改变了工具条的设计,我发现在Windows XP上将它设置为System使得它更适合WinForms风格。
这里有更深层含义吗?控件的呈现方式是否会发生变化以及您建议使用哪种模式?
感谢。
答案 0 :(得分:14)
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事件或其他某个区域调用,您可以将自定义渲染器分配给工具条:
myToolStrip.Renderer = New CustomProfessionalRenderer()