12

我一直不太明白这个属性是为了什么而设计的。我可以看到它明显改变了工具条的设计,并且我发现在 Windows XP 上将其设置为 System 使其更适合 WinForms 样式。

这里有更深层次的含义吗?呈现控件的方式是否发生了变化,您建议使用哪种模式?

谢谢。

4

1 回答 1

15

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()
于 2009-06-14T16:06:27.617 回答