반응형
WPF 제목 표시줄 배경색 변경
WPF 윈도우즈 응용 프로그램이 있습니다.제목 표시줄의 배경색을 변경해야 합니다.내가 어떻게 그럴 수 있을까?
WPF에서 제목 표시줄은 WPF 창 클래스를 통해 수정할 수 없는 비클라이언트 영역의 일부입니다.Win32 핸들을 조작해야 합니다(제 기억이 맞다면).
이 문서는 사용자 정의 Windows Chrome에 도움이 될 수 있습니다.
다음은 이를 달성하는 방법에 대한 예입니다.
<DockPanel HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
LastChildFill="True">
<Grid DockPanel.Dock="Right"
HorizontalAlignment="Right">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Right"
VerticalAlignment="Center">
<Button x:Name="MinimizeButton"
KeyboardNavigation.IsTabStop="False"
Click="MinimizeWindow"
Style="{StaticResource MinimizeButton}"
Template="{StaticResource MinimizeButtonControlTemplate}" />
<Button x:Name="MaximizeButton"
KeyboardNavigation.IsTabStop="False"
Click="MaximizeClick"
Style="{DynamicResource MaximizeButton}"
Template="{DynamicResource MaximizeButtonControlTemplate}" />
<Button x:Name="CloseButton"
KeyboardNavigation.IsTabStop="False"
Command="{Binding ApplicationCommands.Close}"
Style="{DynamicResource CloseButton}"
Template="{DynamicResource CloseButtonControlTemplate}"/>
</StackPanel>
</Grid>
</DockPanel>
코드 뒤에 있는 클릭 이벤트를 처리합니다.
마우스 다운의 경우 -
App.Current.MainWindow.DragMove();
최소화 버튼의 경우 -
App.Current.MainWindow.WindowState = WindowState.Minimized;
더블 클릭 및 최대화의 경우클릭
if (App.Current.MainWindow.WindowState == WindowState.Maximized)
{
App.Current.MainWindow.WindowState = WindowState.Normal;
}
else if (App.Current.MainWindow.WindowState == WindowState.Normal)
{
App.Current.MainWindow.WindowState = WindowState.Maximized;
}
테두리 없는 창을 만들고 테두리와 제목 표시줄을 직접 만들 수도 있습니다.
이 프로젝트는 윈도우 크롬을 사용하여 배경색을 바꾸는데 많은 도움이 되었습니다.만약 당신이 그 당시의 제목으로 많은 다른 사용자 정의를 원한다면, 아마도 국경 없는 창이 방법일 것입니다.하지만 색깔을 바꾸는 것만으로도 이것은 간단하고 잘 작동했습니다!https://www.codeproject.com/Articles/5255192/Use-WindowChrome-to-Customize-the-Title-Bar-in-WPF
언급URL : https://stackoverflow.com/questions/1283006/changing-wpf-title-bar-background-color
반응형
'programing' 카테고리의 다른 글
package.json에서 "private" 속성의 목적은 무엇입니까? (0) | 2023.05.27 |
---|---|
확장이 있지만 uuid_generate_v4가 실패함 (0) | 2023.05.27 |
null 가능한 유형 및 3진수 연산자: '? 10: null'이 금지된 이유는 무엇입니까? (0) | 2023.05.27 |
C++에서 배열의 모든 요소를 하나의 기본값으로 초기화하시겠습니까? (0) | 2023.05.22 |
SessionState와 ViewState의 차이점은 무엇입니까? (0) | 2023.05.22 |