ToolStrip 컨트롤에는 다음과 같은 연결된 렌더링(그리기) 클래스가 있습니다.
ToolStripSystemRenderer는 운영 체제의 모양 및 스타일을 제공합니다.
ToolStripProfessionalRenderer는 Microsoft Office의 모양 및 스타일을 제공합니다.
ToolStripRenderer는 다른 두 렌더링 클래스에 대한 추상 기본 클래스입니다.
ToolStrip에 대한 사용자 지정 그리기(소유자 그리기라고도 함)를 수행하기 위해 렌더러 클래스 중 하나를 재정의하고 렌더링 논리의 한 측면을 변경할 수 있습니다.
다음 절차에서는 사용자 지정 그리기의 다양한 측면을 설명합니다.
제공된 렌더러 간에 전환
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
로 설정합니다.
하나의 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