2012-08-08 2 views
30

C#에서 WinForm의 제목 표시 줄 색을 변경할 수 있습니까? NoneFormBorderStyle 속성을 설정하고 GDI를 사용하여 양식 원하는 이제까지 무엇 무엇 당신이 할 수있는WinForm의 제목 표시 줄 색 변경

  __________________________ 
     [Form1_______________-|[]|X] <- I want to change the color of this 
     |       | 
     |       | 
     |       | 
     |__________________________| 
+0

[제목 표시 줄] (http://en.wikipedia.org/wiki/Title_bar) 또는 제목 표시 줄 텍스트를 의미합니까? – 3aw5TZetdf

+0

예 제목 표시 줄 배경색을 변경하고 싶습니다. – Aravind

+1

참고 : OS 버전 및 사용자의 색 구성표에 따라 이것은 매우 나쁜 생각 일 수 있습니다. 최소한 밝은 부분과 어두운 부분이 바뀌는 색상 구성표를 고려하고 이러한 구성표에 맞게 배경색을 적용하는 방법을 결정하십시오. – ToolmakerSteve

답변

14

이 문제가 해결되었습니다. 이 코드는 다음과 같습니다.

[DllImport("User32.dll", CharSet = CharSet.Auto)] 
public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC); 

[DllImport("User32.dll")] 
private static extern IntPtr GetWindowDC(IntPtr hWnd); 

protected override void WndProc(ref Message m) 
{ 
    base.WndProc(ref m); 
    const int WM_NCPAINT = 0x85; 
    if (m.Msg == WM_NCPAINT) 
    { 
     IntPtr hdc = GetWindowDC(m.HWnd); 
     if ((int)hdc != 0) 
     { 
      Graphics g = Graphics.FromHdc(hdc); 
      g.FillRectangle(Brushes.Green, new Rectangle(0, 0, 4800, 23)); 
      g.Flush(); 
      ReleaseDC(m.HWnd, hdc); 
     } 
    } 
} 
+0

이것은 작동하지 않습니다. 제목 표시 줄은 여전히 ​​회색입니다. – SpicyWeenie

+3

Windows 8 이상에서는 작동하지 않습니다. – SpicyWeenie

+4

Windows 7에서 시도했습니다. 문제는 다음과 같습니다. 녹색 직사각형은 양식 제목을 숨기고 최소화/최대화/닫기합니다. 왼쪽, 오른쪽 및 아래쪽 테두리를 칠하지 않습니다. 테두리 크기는 특정 Windows 버전에 따라 다릅니다. 어쨌든 그것은 흥미로운 시도입니다! – bluish

6

.

8

Drawing Custom Borders in Windows Forms 프로젝트를 CodePlex에서 사용하십시오. 이 프로젝트는 윈도우의 비 클라이언트 영역을 커스터마이즈 할 수있는 능력을 가진 윈도우 폼을 확장시키는 작은 라이브러리입니다.

+1

CodePlex가 종료됩니다. 이것은 본질적으로 링크 전용 답변이므로 일단 발생하면 가치가 없습니다. – IInspectable

+0

이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [검토 중] (리뷰/저품질 게시물/17137919) – Patrick

+0

@IInspectable "현재 아카이브의 종료일을 가질 계획이 없습니다." 그래서 ... 여전히 이상적인 대답은 아니지만 완전히 쓸모없는 것은 아닙니다. –

-13

이 쉽게 할 수 있습니다 :

  1. 바탕 화면에서 마우스 오른쪽 버튼을 클릭하고 "개인 설정"을 선택합니다.

  2. 화면 하단의 "창 색상"타일을 클릭하십시오.

  3. 새 색상을 선택하십시오.

    컴퓨터가 Aero 테마를 사용하도록 구성된 경우 표준 색상 중 하나를 선택하거나 자신의 색상을 혼합 할 수 있습니다.

    클래식 테마를 사용하는 경우 색상을 설정하는 데 사용할 수있는 '창 색상 및 모양'대화 상자가 표시됩니다. 샘플 바탕 화면의 제목 표시 줄, "활성 창"이라고 불리는 바탕 화면을 클릭 한 다음 "색상 1"및 "색상 2"드롭 다운 상자를 사용하여 새 색상을 선택하십시오. 절대적으로 응용 프로그램의 제목 표시 줄의 색상을 변경하는 변명이 있기 때문에

는 난 단지, 이것은 당신이 무엇을 의미하는지 가정 할 수 있습니다. 이것이 시스템 전체의 설정이라는 이유가 있습니다.

항상 사용자의 기본 설정을 따르십시오. 제목 표시 줄이 다른 색으로 나타나게하려면 다른 색을 선택하십시오.

+0

Pls 내 답변을 볼 수 있습니다. 그것은 완벽하게 작동합니다 ..:) – Aravind

+27

-1 : 프로그래머가 뭔가를하고 싶을 때 그 이유가 있습니다. 대답은 "그럴 필요가없는 변명"이 될 수 없다는 것입니다. – ThunderGr

+0

"이유"가 잘못되었거나 잘못된 것입니다. –

관련 문제