programing

WPF 제목 표시줄 배경색 변경

instargram 2023. 5. 27. 09:37
반응형

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

반응형