Question

J'ai une application WPF de Windows. Je dois changer la couleur de fond de la barre de titre. Comment puis-je faire?

Était-ce utile?

La solution

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

Autres conseils

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>

Poignée Cliquez sur Événements dans le code-behind.

Pour MouseDown -

App.Current.MainWindow.DragMove();

Pour minimiser 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 cette aide.

Vous pouvez également créer une fenêtre sans bordure, et rendre les frontières et le titre vous bar

Vérifiez href="https://code.msdn.microsoft.com/windowsdesktop/WPF-styling-a-Window-in-fcf4e4ce" l'exemple suivant WPF personnaliser l'apparence d'un fenêtre en 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, les frontières, max, min et boutons de fermeture tout en fournissant toutes les fonctionnalités attendues

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top