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

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

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

2개의 좋아요

질문자 님이 직접 해보신

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

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

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

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

2개의 좋아요

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

1개의 좋아요

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

1개의 좋아요

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

1개의 좋아요

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

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

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

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

1개의 좋아요

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

1개의 좋아요

아 그런거였군요…

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

2개의 좋아요