Modification de la couleur de fond de la barre de titre WPF

J'ai une application Windows WPF. Je dois changer la couleur d'arrière-plan de la barre de titre. Comment puis-je le faire?

24
demandé sur bluish 2009-08-16 02:14:18

4 réponses

Dans WPF, la barre de titre fait partie de la zone non-client, qui ne peut pas être modifiée via la classe de fenêtre WPF. Vous devez manipuler les poignées Win32 (si je me souviens bien).
Cet article pourrait vous être utile: fenêtre personnalisée Chrome dans WPF .

12
répondu Marcel B 2013-11-14 16:55:03

Voici un exemple sur la façon d'y parvenir:

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

Gérer les événements de clic dans le code-behind.

Pour MouseDown -

App.Current.MainWindow.DragMove();

Pour Réduire Le Bouton -

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

Pour DoubleClick et 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;
        }

J'espère que cela aide.

-Sushant

18
répondu Sushant Khurana 2011-02-16 09:18:12

Vous pouvez également créer une fenêtre sans bordure et créer vous-même les bordures et la barre de titre

9
répondu Thomas Levesque 2009-08-16 00:24:22

Vérifiez l'exemple suivant WPF personnalisant L'apparence D'une fenêtre dans XAML

Cet exemple montre comment personnaliser entièrement le style / l'apparence d'une fenêtre, y compris les zones non-client: barre de titre, bordures, boutons max, min et fermer tout en fournissant toutes les fonctionnalités attendues.

1
répondu Abou-Emish 2017-09-13 11:53:25