ToolStrip コントロールには、次のレンダリング (描画) クラスが関連付けられています。
ToolStripSystemRenderer は、オペレーティング システムの外観とスタイルを提供します。
ToolStripProfessionalRenderer は、Microsoft Office の外観とスタイルを提供します。
ToolStripRenderer は、他の 2 つのレンダリング クラスの抽象基底クラスです。
ToolStripをカスタム描画 (所有者描画とも呼びます) するには、レンダラー クラスの 1 つをオーバーライドし、レンダリング ロジックの側面を変更できます。
次の手順では、カスタム描画のさまざまな側面について説明します。
指定されたレンダラーを切り替える
RenderMode プロパティを目的の ToolStripRenderMode 値に設定します。
ManagerRenderModeでは、静的 RenderMode によってアプリケーションのレンダラーが決定されます。 ToolStripRenderMode のその他の値は、Custom、Professional、および Systemです。
Office スタイルの罫線を変更する
- ToolStripProfessionalRenderer.OnRenderToolStripBorderオーバーライドしますが、基底クラスは呼び出しません。
注
このメソッドには、ToolStripRenderer、ToolStripSystemRenderer、および ToolStripProfessionalRendererのバージョンがあります。
ProfessionalColorTable を変更する
ProfessionalColorTable をオーバーライドし、必要な色を変更します。
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { var colorTable = new MyColorTable(); toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable); } class MyColorTable: ProfessionalColorTable { public override System.Drawing.Color ButtonPressedGradientBegin => Color.Red; public override System.Drawing.Color ButtonPressedGradientMiddle => Color.Blue; public override System.Drawing.Color ButtonPressedGradientEnd => Color.Green; public override System.Drawing.Color ButtonSelectedGradientBegin => Color.Yellow; public override System.Drawing.Color ButtonSelectedGradientMiddle => Color.Orange; public override System.Drawing.Color ButtonSelectedGradientEnd => Color.Violet; } }
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim colorTable As New MyColorTable ToolStrip1.Renderer = New ToolStripProfessionalRenderer(colorTable) End Sub Class MyColorTable Inherits ProfessionalColorTable Public Overrides ReadOnly Property ButtonPressedGradientBegin() As System.Drawing.Color Get Return Color.Red End Get End Property Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As System.Drawing.Color Get Return Color.Blue End Get End Property Public Overrides ReadOnly Property ButtonPressedGradientEnd() As System.Drawing.Color Get Return Color.Green End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As System.Drawing.Color Get Return Color.Yellow End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As System.Drawing.Color Get Return Color.Orange End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As System.Drawing.Color Get Return Color.Violet End Get End Property End Class End Class
すべての ToolStrips のレンダリングを変更する
ToolStripManager.RenderMode プロパティを使用して、指定されたレンダラーのいずれかを選択します。
ToolStripManager.Renderer を使用してカスタム レンダラーを割り当てます。
ToolStrip.RenderMode が既定値の ManagerRenderModeに設定されていることを確認します。
Office の色をオフにする
-
ToolStripManager.VisualStylesEnabled を
false
に設定します。
1 つの ToolStrip で Office の色をオフにする
次のコード例のようなコードを使用します。
ProfessionalColorTable colorTable = new ProfessionalColorTable(); colorTable.UseSystemColors = true; toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable);
Dim colorTable As New ProfessionalColorTable colorTable.UseSystemColors = True ToolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable)
こちらも参照ください
- ToolStripSystemRenderer
- ToolStripProfessionalRenderer
- ToolStripRenderer
- 組み込みのオーナー描画サポートを備えたコントロール
- 方法: Windows フォーム で ToolStrip コントロールのカスタム レンダラーを作成および設定する
- ToolStrip コントロールの概要
.NET Desktop feedback