Изменения в WPF заголовок цвет фона

У меня есть приложение WPF Windows. Мне нужно изменить цвет фона заголовка. Как я могу это сделать?

4 ответов


в WPF заголовок является частью неклиентской области, которая не может быть изменена через класс окна WPF. Вам нужно манипулировать дескрипторами Win32 (если я правильно помню).
Эта статья может быть полезна для вас: Пользовательское окно Chrome в WPF.


вот пример того, как этого достичь:

    <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>

обрабатывать события щелчка в коде.

Для MouseDown -

App.Current.MainWindow.DragMove();

Для Кнопки

App.Current.MainWindow.WindowState = WindowState.Minimized;

для DoubleClick и MaximizeClick

        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;
        }

надеюсь, это поможет.

-Сушант


вы также можете создать окно без границ и сделать границы и строку заголовка самостоятельно


проверьте следующие образец WPF настройка внешнего вида окна в XAML

в этом примере показано, как полностью настроить стиль / внешний вид окна, включая области, не являющиеся клиентами: панель заголовка, границы, кнопки max, min и close, обеспечивая при этом всю ожидаемую функциональность.