ToolStripProfessionalRenderer クラス

定義

ToolStrip オブジェクトの描画機能を、カスタムのパレットおよび簡素化されたスタイルを適用することによって処理します。

public ref class ToolStripProfessionalRenderer : System::Windows::Forms::ToolStripRenderer
public class ToolStripProfessionalRenderer : System.Windows.Forms.ToolStripRenderer
type ToolStripProfessionalRenderer = class
    inherit ToolStripRenderer
Public Class ToolStripProfessionalRenderer
Inherits ToolStripRenderer
継承
ToolStripProfessionalRenderer

次のコード例では、Microsoft® Outlook® によって提供される ナビゲーション ウィンドウ を模倣する複合コントロールを作成する方法を示します。 完全なコード一覧については、「 方法: プロフェッショナル スタイルの ToolStrip コントロールを作成する」を参照してください。

internal class StackRenderer : ToolStripProfessionalRenderer
{
    private static Bitmap titleBarGripBmp;
    private static string titleBarGripEnc = @"Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+";

    // Define titlebar colors.
    private static Color titlebarColor1 = Color.FromArgb(89, 135, 214);
    private static Color titlebarColor2 = Color.FromArgb(76, 123, 204);
    private static Color titlebarColor3 = Color.FromArgb(63, 111, 194);
    private static Color titlebarColor4 = Color.FromArgb(50, 99, 184);
    private static Color titlebarColor5 = Color.FromArgb(38, 88, 174);
    private static Color titlebarColor6 = Color.FromArgb(25, 76, 164);
    private static Color titlebarColor7 = Color.FromArgb(12, 64, 154);
    private static Color borderColor = Color.FromArgb(0, 0, 128);

    static StackRenderer()
    {
        titleBarGripBmp = StackView.DeserializeFromBase64(titleBarGripEnc);
    }

    public StackRenderer()
    {
    }

    private void DrawTitleBar(Graphics g, Rectangle rect)
    {
        // Assign the image for the grip.
        Image titlebarGrip = titleBarGripBmp;

        // Fill the titlebar. 
        // This produces the gradient and the rounded-corner effect.
        g.DrawLine(new Pen(titlebarColor1), rect.X, rect.Y, rect.X + rect.Width, rect.Y);
        g.DrawLine(new Pen(titlebarColor2), rect.X, rect.Y + 1, rect.X + rect.Width, rect.Y + 1);
        g.DrawLine(new Pen(titlebarColor3), rect.X, rect.Y + 2, rect.X + rect.Width, rect.Y + 2);
        g.DrawLine(new Pen(titlebarColor4), rect.X, rect.Y + 3, rect.X + rect.Width, rect.Y + 3);
        g.DrawLine(new Pen(titlebarColor5), rect.X, rect.Y + 4, rect.X + rect.Width, rect.Y + 4);
        g.DrawLine(new Pen(titlebarColor6), rect.X, rect.Y + 5, rect.X + rect.Width, rect.Y + 5);
        g.DrawLine(new Pen(titlebarColor7), rect.X, rect.Y + 6, rect.X + rect.Width, rect.Y + 6);

        // Center the titlebar grip.
        g.DrawImage(
            titlebarGrip,
            new Point(rect.X + ((rect.Width / 2) - (titlebarGrip.Width / 2)),
            rect.Y + 1));
    }

    // This method handles the RenderGrip event.
    protected override void OnRenderGrip(ToolStripGripRenderEventArgs e)
    {
        DrawTitleBar(
            e.Graphics,
            new Rectangle(0, 0, e.ToolStrip.Width, 7));
    }

    // This method handles the RenderToolStripBorder event.
    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    {
        DrawTitleBar(
            e.Graphics,
            new Rectangle(0, 0, e.ToolStrip.Width, 7));
    }

    // This method handles the RenderButtonBackground event.
    protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
    {
        Graphics g = e.Graphics;
        Rectangle bounds = new Rectangle(Point.Empty, e.Item.Size);

        Color gradientBegin = Color.FromArgb(203, 225, 252);
        Color gradientEnd = Color.FromArgb(125, 165, 224);

        ToolStripButton button = e.Item as ToolStripButton;
        if (button.Pressed || button.Checked)
        {
            gradientBegin = Color.FromArgb(254, 128, 62);
            gradientEnd = Color.FromArgb(255, 223, 154);
        }
        else if (button.Selected)
        {
            gradientBegin = Color.FromArgb(255, 255, 222);
            gradientEnd = Color.FromArgb(255, 203, 136);
        }

        using (Brush b = new LinearGradientBrush(
            bounds,
            gradientBegin,
            gradientEnd,
            LinearGradientMode.Vertical))
        {
            g.FillRectangle(b, bounds);
        }

        e.Graphics.DrawRectangle(
            SystemPens.ControlDarkDark,
            bounds);

        g.DrawLine(
            SystemPens.ControlDarkDark,
            bounds.X,
            bounds.Y,
            bounds.Width - 1,
            bounds.Y);

        g.DrawLine(
            SystemPens.ControlDarkDark,
            bounds.X,
            bounds.Y,
            bounds.X,
            bounds.Height - 1);

        ToolStrip toolStrip = button.Owner;
        ToolStripButton nextItem = button.Owner.GetItemAt(
            button.Bounds.X,
            button.Bounds.Bottom + 1) as ToolStripButton;

        if (nextItem == null)
        {
            g.DrawLine(
                SystemPens.ControlDarkDark,
                bounds.X,
                bounds.Height - 1,
                bounds.X + bounds.Width - 1,
                bounds.Height - 1);
        }
    }
}
Friend Class StackRenderer
   Inherits ToolStripProfessionalRenderer
   Private Shared titleBarGripBmp As Bitmap
   Private Shared titleBarGripEnc As String = "Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+"
   
   ' Define titlebar colors.
   Private Shared titlebarColor1 As Color = Color.FromArgb(89, 135, 214)
   Private Shared titlebarColor2 As Color = Color.FromArgb(76, 123, 204)
   Private Shared titlebarColor3 As Color = Color.FromArgb(63, 111, 194)
   Private Shared titlebarColor4 As Color = Color.FromArgb(50, 99, 184)
   Private Shared titlebarColor5 As Color = Color.FromArgb(38, 88, 174)
   Private Shared titlebarColor6 As Color = Color.FromArgb(25, 76, 164)
   Private Shared titlebarColor7 As Color = Color.FromArgb(12, 64, 154)
   Private Shared borderColor As Color = Color.FromArgb(0, 0, 128)
   
   Shared Sub New()
      titleBarGripBmp = StackView.DeserializeFromBase64(titleBarGripEnc)
     End Sub
   
   Public Sub New()
     End Sub
   
     Private Sub DrawTitleBar(ByVal g As Graphics, ByVal rect As Rectangle)

         ' Assign the image for the grip.
         Dim titlebarGrip As Image = titleBarGripBmp

         ' Fill the titlebar. 
         ' This produces the gradient and the rounded-corner effect.
         g.DrawLine(New Pen(titlebarColor1), rect.X, rect.Y, rect.X + rect.Width, rect.Y)
         g.DrawLine(New Pen(titlebarColor2), rect.X, rect.Y + 1, rect.X + rect.Width, rect.Y + 1)
         g.DrawLine(New Pen(titlebarColor3), rect.X, rect.Y + 2, rect.X + rect.Width, rect.Y + 2)
         g.DrawLine(New Pen(titlebarColor4), rect.X, rect.Y + 3, rect.X + rect.Width, rect.Y + 3)
         g.DrawLine(New Pen(titlebarColor5), rect.X, rect.Y + 4, rect.X + rect.Width, rect.Y + 4)
         g.DrawLine(New Pen(titlebarColor6), rect.X, rect.Y + 5, rect.X + rect.Width, rect.Y + 5)
         g.DrawLine(New Pen(titlebarColor7), rect.X, rect.Y + 6, rect.X + rect.Width, rect.Y + 6)

         ' Center the titlebar grip.
         g.DrawImage(titlebarGrip, New Point(rect.X + (rect.Width / 2 - titlebarGrip.Width / 2), rect.Y + 1))
     End Sub
   
   
   ' This method handles the RenderGrip event.
   Protected Overrides Sub OnRenderGrip(e As ToolStripGripRenderEventArgs)
      DrawTitleBar(e.Graphics, New Rectangle(0, 0, e.ToolStrip.Width, 7))
     End Sub
   
   
   ' This method handles the RenderToolStripBorder event.
   Protected Overrides Sub OnRenderToolStripBorder(e As ToolStripRenderEventArgs)
      DrawTitleBar(e.Graphics, New Rectangle(0, 0, e.ToolStrip.Width, 7))
     End Sub
   
   
   ' This method handles the RenderButtonBackground event.
   Protected Overrides Sub OnRenderButtonBackground(e As ToolStripItemRenderEventArgs)
      Dim g As Graphics = e.Graphics
      Dim bounds As New Rectangle(Point.Empty, e.Item.Size)
      
      Dim gradientBegin As Color = Color.FromArgb(203, 225, 252)
      Dim gradientEnd As Color = Color.FromArgb(125, 165, 224)
      
         Dim button As ToolStripButton = CType(e.Item, ToolStripButton)
      
      If button.Pressed OrElse button.Checked Then
         gradientBegin = Color.FromArgb(254, 128, 62)
         gradientEnd = Color.FromArgb(255, 223, 154)
      ElseIf button.Selected Then
         gradientBegin = Color.FromArgb(255, 255, 222)
         gradientEnd = Color.FromArgb(255, 203, 136)
      End If
      
      Dim b = New LinearGradientBrush(bounds, gradientBegin, gradientEnd, LinearGradientMode.Vertical)
      Try
         g.FillRectangle(b, bounds)
      Finally
         b.Dispose()
      End Try
      
      e.Graphics.DrawRectangle(SystemPens.ControlDarkDark, bounds)
      
      g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Y, bounds.Width - 1, bounds.Y)
      
      g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Y, bounds.X, bounds.Height - 1)
      
      Dim toolStrip As ToolStrip = button.Owner
         Dim nextItem As ToolStripButton = CType(button.Owner.GetItemAt(button.Bounds.X, button.Bounds.Bottom + 1), ToolStripButton)
      
      If nextItem Is Nothing Then
         g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Height - 1, bounds.X + bounds.Width - 1, bounds.Height - 1)
      End If
     End Sub
 End Class

注釈

ToolStripProfessionalRenderer は、 という ProfessionalColorTable置き換え可能なカラー テーブルに基づいてペンとブラシを作成します。

コンストラクター

ToolStripProfessionalRenderer()

ToolStripProfessionalRenderer クラスの新しいインスタンスを初期化します。

ToolStripProfessionalRenderer(ProfessionalColorTable)

ToolStripProfessionalRenderer クラスの新しいインスタンスを初期化します。

プロパティ

ColorTable

描画に使用するカラー パレットを取得します。

RoundedEdges

コントロールの端を、直角または鋭角の外観ではなく、丸い外観にするかどうかを示す値を取得または設定します。

メソッド

DrawArrow(ToolStripArrowRenderEventArgs)

ToolStripItem 上に矢印を描画します。

(継承元 ToolStripRenderer)
DrawButtonBackground(ToolStripItemRenderEventArgs)

ToolStripButton の背景を描画します。

(継承元 ToolStripRenderer)
DrawDropDownButtonBackground(ToolStripItemRenderEventArgs)

ToolStripDropDownButton の背景を描画します。

(継承元 ToolStripRenderer)
DrawGrip(ToolStripGripRenderEventArgs)

ToolStrip に移動ハンドルを描画します。

(継承元 ToolStripRenderer)
DrawImageMargin(ToolStripRenderEventArgs)

ToolStrip 上のイメージの周りに空白を描画します。

(継承元 ToolStripRenderer)
DrawItemBackground(ToolStripItemRenderEventArgs)

ToolStripItem の背景を描画します。

(継承元 ToolStripRenderer)
DrawItemCheck(ToolStripItemImageRenderEventArgs)

ToolStripItem 上に、項目が選択されていることを示すイメージを描画します。

(継承元 ToolStripRenderer)
DrawItemImage(ToolStripItemImageRenderEventArgs)

ToolStripItem 上にイメージを描画します。

(継承元 ToolStripRenderer)
DrawItemText(ToolStripItemTextRenderEventArgs)

ToolStripItem 上にテキストを描画します。

(継承元 ToolStripRenderer)
DrawLabelBackground(ToolStripItemRenderEventArgs)

ToolStripLabel の背景を描画します。

(継承元 ToolStripRenderer)
DrawMenuItemBackground(ToolStripItemRenderEventArgs)

ToolStripMenuItem の背景を描画します。

(継承元 ToolStripRenderer)
DrawOverflowButtonBackground(ToolStripItemRenderEventArgs)

オーバーフロー ボタンの背景を描画します。

(継承元 ToolStripRenderer)
DrawSeparator(ToolStripSeparatorRenderEventArgs)

ToolStripSeparator を描画します。

(継承元 ToolStripRenderer)
DrawSplitButton(ToolStripItemRenderEventArgs)

ToolStripSplitButton を描画します。

(継承元 ToolStripRenderer)
DrawStatusStripSizingGrip(ToolStripRenderEventArgs)

サイズ変更グリップを描画します。

(継承元 ToolStripRenderer)
DrawToolStripBackground(ToolStripRenderEventArgs)

ToolStrip の背景を描画します。

(継承元 ToolStripRenderer)
DrawToolStripBorder(ToolStripRenderEventArgs)

ToolStrip の境界線を描画します。

(継承元 ToolStripRenderer)
DrawToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

ToolStripContentPanel の背景を描画します。

(継承元 ToolStripRenderer)
DrawToolStripPanelBackground(ToolStripPanelRenderEventArgs)

ToolStripPanel の背景を描画します。

(継承元 ToolStripRenderer)
DrawToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

ToolStripStatusLabel の背景を描画します。

(継承元 ToolStripRenderer)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
Initialize(ToolStrip)

派生クラスでオーバーライドすると、特定の ToolStrip のカスタムの初期化処理を提供します。

(継承元 ToolStripRenderer)
InitializeContentPanel(ToolStripContentPanel)

指定した ToolStripContentPanel を初期化します。

(継承元 ToolStripRenderer)
InitializeItem(ToolStripItem)

派生クラスでオーバーライドすると、特定の ToolStripItem のカスタムの初期化処理を提供します。

(継承元 ToolStripRenderer)
InitializePanel(ToolStripPanel)

指定した ToolStripPanel を初期化します。

(継承元 ToolStripRenderer)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
OnRenderArrow(ToolStripArrowRenderEventArgs)

RenderArrow イベントを発生させます。

OnRenderButtonBackground(ToolStripItemRenderEventArgs)

RenderButtonBackground イベントを発生させます。

OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs)

RenderDropDownButtonBackground イベントを発生させます。

OnRenderGrip(ToolStripGripRenderEventArgs)

RenderGrip イベントを発生させます。

OnRenderImageMargin(ToolStripRenderEventArgs)

項目の背景を描画します。

OnRenderItemBackground(ToolStripItemRenderEventArgs)

OnRenderItemBackground(ToolStripItemRenderEventArgs) イベントを発生させます。

(継承元 ToolStripRenderer)
OnRenderItemCheck(ToolStripItemImageRenderEventArgs)

RenderItemCheck イベントを発生させます。

OnRenderItemImage(ToolStripItemImageRenderEventArgs)

RenderItemImage イベントを発生させます。

OnRenderItemText(ToolStripItemTextRenderEventArgs)

RenderItemText イベントを発生させます。

OnRenderLabelBackground(ToolStripItemRenderEventArgs)

RenderLabelBackground イベントを発生させます。

OnRenderMenuItemBackground(ToolStripItemRenderEventArgs)

RenderMenuItemBackground イベントを発生させます。

OnRenderOverflowButtonBackground(ToolStripItemRenderEventArgs)

RenderOverflowButtonBackground イベントを発生させます。

OnRenderSeparator(ToolStripSeparatorRenderEventArgs)

RenderSeparator イベントを発生させます。

OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs)

OnRenderSplitButtonBackground イベントを発生させます。

OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs)

RenderStatusStripSizingGrip イベントを発生させます。

(継承元 ToolStripRenderer)
OnRenderToolStripBackground(ToolStripRenderEventArgs)

RenderToolStripBackground イベントを発生させます。

OnRenderToolStripBorder(ToolStripRenderEventArgs)

RenderToolStripBorder イベントを発生させます。

OnRenderToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

RenderToolStripContentPanelBackground イベントを発生させます。

OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs)

RenderToolStripPanelBackground イベントを発生させます。

OnRenderToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

RenderToolStripStatusLabelBackground イベントを発生させます。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

イベント

RenderArrow

ToolStripItem 上の矢印が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderButtonBackground

ToolStripButton の背景が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderDropDownButtonBackground

ToolStripDropDownButton の背景が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderGrip

ToolStrip の移動ハンドルが描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderImageMargin

イメージとそのコンテナーとの間にマージンを描画します。

(継承元 ToolStripRenderer)
RenderItemBackground

ToolStripItem の背景が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderItemCheck

選択済みの ToolStripItem のイメージが描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderItemImage

ToolStripItem のイメージが描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderItemText

ToolStripItem のテキストが描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderLabelBackground

ToolStripLabel の背景が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderMenuItemBackground

ToolStripMenuItem の背景が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderOverflowButtonBackground

オーバーフロー ボタンの背景が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderSeparator

ToolStripSeparator が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderSplitButtonBackground

ToolStripSplitButton の背景が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderStatusStripSizingGrip

表示スタイルが変更されたときに発生します。

(継承元 ToolStripRenderer)
RenderToolStripBackground

ToolStrip の背景が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderToolStripBorder

ToolStrip の境界線が描画されたときに発生します。

(継承元 ToolStripRenderer)
RenderToolStripContentPanelBackground

ToolStripContentPanel の背景を描画します。

(継承元 ToolStripRenderer)
RenderToolStripPanelBackground

ToolStripPanel の背景を描画します。

(継承元 ToolStripRenderer)
RenderToolStripStatusLabelBackground

ToolStripStatusLabel の背景を描画します。

(継承元 ToolStripRenderer)

適用対象