다음을 통해 공유


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)

적용 대상