ToolStrip的RenderMode属性是什么意思?

12

我从来没有完全理解这个属性的设计目的。我可以看到它明显改变了工具栏的设计,我发现将其设置为Windows XP上的System可以更好地符合WinForms样式。

这里是否有更深层次的含义?控件呈现方式是否会发生任何变化,您推荐使用哪种模式?

谢谢。

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()

如何在没有鼠标悬停事件的情况下完成它 - Tanmay Nehete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接