none
WPF : Personnalisation de la barre de titre de la fenêtre RRS feed

  • Question

  • Bonjour,

    Je souhaite personnaliser la fenêtre principale d'une application de bureau WPF.

    J'utilise le tout nouveau VS 2019 Community, .Net 4.7.2.

    A titre d'essai, j'ai écrit une petite appli de test qui fonctionne "presque" comme je le souhaite SAUF pour la barre de titre qui présente une bordure de quelques pixels de couleur blanche au sommet dont je n'explique pas la présence. Voici ci-dessous:

    Et voici le XAML de cette appli :

    <Window x:Class="WpfWinPerso.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfWinPerso"
            mc:Ignorable="d"
            Height="450" Width="800" WindowStyle="None" >
    
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="28"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
            <!-- Grid barre de titre -->
            <Grid Name="GridTitre" Grid.Row="0" Background="Black" MouseDown="GridTitre_MouseDown">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="88"/>
                </Grid.ColumnDefinitions>
    
                <StackPanel Grid.Column="0" Orientation="Horizontal">
                    <Image Width="16" Height="16" Margin="6,2,0,0" Source="App.ico" />
                    <TextBlock x:Name="Titre" Foreground="#FFF7F5F5" Text="My Wpf Appli" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="15,2,0,0" />
                </StackPanel>
                <StackPanel Grid.Column="1" Orientation="Horizontal">
                    <Button Name="BtMin" Width="30" Height="28" Background="#FF2D2D2E" Click="BtMin_Click" BorderThickness="0"/>
                    <Button Name="BtMax" Width="30" Height="28" Background="#FF242525" Click="BtMax_Click" BorderThickness="0"/>
                    <Button Name="Stop"  Width="30" Height="28" Background="#FFF74A4A" Click="Stop_Click" BorderThickness="0"/>
                </StackPanel>
            </Grid>
    
            <!-- Grid applicatif -->
            <Grid Name="GridApp" Grid.Row="1" Background="#FF232323">
                
            </Grid>
        </Grid>
    </Window>
    

    Il n'y a rien de spécial dans le code C#, juste les quatre Handlers d'actions sur la barre de titre.

    J'ajoute que le rendu est le même quel que soit le mode de compil, Debug ou Release.

    Quelle pourrait être l'origine de cette bordure blanche en haut de la barre de titre ?

    Merci de vos conseils.

    Cordialement


    Alain

    lundi 8 avril 2019 20:20

Réponses

Toutes les réponses