WinForm 제목표시줄 ui 커스터마이징

안녕하세요 C# WinForm으로 프로그램 만들어보면서 디자인도 입혀보려고 이것저것 영상이나 글들 찾아보다가
아래 링크의 영상을 접하게 됐는데요

윈도우 테마컬러를 가져다가 각 컨트롤의 BackColor에 적용하는 영상입니다.
이 영상을 보다가 궁금한점이 하나 생겼는데, 영상의 7:28초쯤을 보면 폼의 제목표시줄 색도 함께 바뀌더라구요
그런데 영상의 코드에는 그런 부분이 보이질 않는데 제가 직접해보니 폼의 제목표시줄 색은 안바뀌는걸 확인했습니다.
저 제목표시줄 색을 어떻게 바꿨는지 궁금해서 질문올려봅니다..!!

2 Likes

질문자 님이 직접 해보신

관련 코드가 없어서 어떻게 하셨는지 모르겠는데

혹시 일반 기본 폼의 타이틀로 처리하신것이 아닌가 추측해 봅니다.

영상 에서의 타이틀바는 커스텀하게 Panel로 직접 처리한것으로 보여 집니다.

이 부분이 관련 코드 인것 같습니다.
image

2 Likes

타이틀바 색을 바꾸는 게 아니고 설정에서 지정한 색상 읽어서 테마색상을 바꾸는 거에요
WinTheme.GetAccentColor(); 읽어 오기만 합니다.
뒤쪽에 테마색상 바꾸면 이벤트 핸들러에서 앱 테마 바꾸는 거고…
근데 글에 동영상 임베딩 어떻게 하는 건가요?

1 Like

저 LoadTheme에있는 컨트롤들은 제목표시줄과는 상관이 없는코드입니다 저도 폼의 borderStyle을 None으로 한 다음 panel을 커스텀해서 만든건가 싶었는데 일반 폼 제목표시줄하고 상당히 유사하게 되어있어서 혹시 다른 방법이 있나해서요 ㅎㅎ

1 Like

네 저도 거기까진 이해했는데 영상에서 타이틀바 색이 테마색상에 맞게 바뀌는 부분이 어떻게 적용되는건지 잘 모르겠습니다.
그리고 동영상 임베딩은 그냥 동영상링크를 올렸더니 알아서됐습니다!

1 Like

그렇네요, 영상을 다시 보니

panelTitleBar는 그냥 상단의 패널이였네요

직접 만들어본 프로젝트를 여기에 공유해 보시면 다른 분들도

직접 실행해 보기 더 수월해서 더 많은 답변 있을 것 같습니다.
(OS의 버전 or 윈도우 테마 환경설정 차이 일 수도 있으니깐요)

1 Like

이건 윈도우 개인설정->테마 색상 바꾸면 시스템에 적용되는 거고요
테마색상 읽어서 앱의 테마 깔맞춤 하는 겁니다.
영상에서 타이틀바 색상을 바꾸는 코드도 없고 바뀌게 하지도 않습니다.

1 Like

아 그런거였군요…

개인설정 > 색 들어가서 제목 표시줄 및 창 테두리 저부분을 체크해주면 말씀하신대로 테마색상대로 앱의 테마가 깔맞춤되네요!
image

2 Likes