방법: ToolStrip 컨트롤 그리기 사용자 지정

ToolStrip 컨트롤에는 다음과 같은 연결된 렌더링(그리기) 클래스가 있습니다.

ToolStrip에 대한 사용자 지정 그리기(소유자 그리기라고도 함)를 수행하기 위해 렌더러 클래스 중 하나를 재정의하고 렌더링 논리의 한 측면을 변경할 수 있습니다.

다음 절차에서는 사용자 지정 그리기의 다양한 측면을 설명합니다.

제공된 렌더러 간에 전환

Office 스타일 테두리 변경

참고

ToolStripRenderer, ToolStripSystemRendererToolStripProfessionalRenderer에 대한 이 메서드의 버전이 있습니다.

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에 대한 렌더링 변경

  1. ToolStripManager.RenderMode 속성을 사용하여 제공된 렌더러 중 하나를 선택합니다.

  2. ToolStripManager.Renderer를 사용하여 사용자 지정 렌더러를 할당합니다.

  3. ToolStrip.RenderMode가 기본값인 ManagerRenderMode로 설정되었는지 확인합니다.

Office 색 해제

하나의 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)
    

참고 항목