方法: ToolStrip コントロールをカスタム描画する
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
すべての ToolStrip のレンダリングを変更する
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)
関連項目
.NET Desktop feedback