-
[WinForm - ProfessionalColorTable] Custom MenuStripC# 2021. 10. 29. 13:00
ProfessionalColorTable 사용하여 WinForm에서 기본 제공되는 Menu 컨트롤의 색상을 변경하는 방법입니다.
1. 비쥬얼 스타일 활성화
Program.cs에 아래 코드를 추가하여 비쥬얼 스타일을 Enable 처리합니다.
Application.EnableVisualStyles();
2. ColorTable 적용
ProfessionalColorTable 상속 받은 CustomProfessionalColorTable Class를 생성 후
필요한 옵션의 프로퍼티를 override 하고 변경하고 싶은 영역을 변경합니다.
public class CustomProfessionalColorTable : ProfessionalColorTable { // 재정의 생성을 통해 프로퍼티 override 처리 // 변경하고싶은 영역의 색상을 변경 public override Color ImageMarginGradientBegin => Color.Purple; public override Color ImageMarginGradientEnd => base.ImageMarginGradientEnd; }
Form.cs를 실행 후 MenuStrip Renderer를 적용시키면 원하는 색상을 적용할 수 있습니다.
public FrmMain() { InitializeComponent(); menuStrip1.Renderer = new ToolStripProfessionalRenderer(new CustomProfessionalColorTable()); }
3. MenuStrip Color 적용 범위
public override Color ImageMarginGradientBegin => Color.Red; public override Color ImageMarginGradientMiddle => Color.Green; public override Color ImageMarginGradientEnd => Color.Blue;
public override Color MenuItemSelected => Color.Blue;
public override Color MenuItemBorder => Color.Red;
public override Color MenuBorder => Color.Red;
// 마우스 Hover 색상 public override Color MenuItemSelectedGradientBegin => Color.Red; public override Color MenuItemSelectedGradientEnd => Color.Green;
// 메뉴 선택 시 색상 public override Color MenuItemPressedGradientBegin => Color.Red; public override Color MenuItemPressedGradientMiddle => Color.Green; public override Color MenuItemPressedGradientEnd => Color.Blue;
public override Color ToolStripDropDownBackground => Color.Red;
// 버튼 프레스 시 변경 색 public override Color ButtonPressedGradientBegin => Color.Red; public override Color ButtonPressedGradientMiddle => Color.Green; public override Color ButtonPressedGradientEnd => Color.Blue;
// 마우스 호버 시 public override Color ButtonPressedBorder => Color.Yellow;
'C#' 카테고리의 다른 글
[CUDA, cuDNN] 설치 (0) 2021.09.29 [C# - Bitmap] BitMap 포인터 접근하기 (0) 2021.03.10 [WinForm - Designer] UserControl 내 객체 추가가 안될때 해결 방법 (0) 2021.03.04