Wpf plein écran

trkaan9 1 Messages postés dimanche 21 août 2016Date d'inscription 21 août 2016 Dernière intervention - 21 août 2016 à 02:48 - Dernière réponse : Whismeril 11407 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention
- 18 sept. 2016 à 10:48
Bonjour,
j'ai utilisé WindowState="Maximized", ma fenêtre se met bien en plein écran mais les composants se déforme.
Pouvez-vous m'aider

Merci.
Afficher la suite 

3 réponses

Répondre au sujet
ExeDev 4 Messages postés dimanche 18 septembre 2016Date d'inscription 18 septembre 2016 Dernière intervention - Modifié par NHenry le 18/09/2016 à 15:03
0
Utile
1
cela peut t'aider ?

private void Window_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    if (e.ChangedButton == MouseButton.Left)
    {
        switch (WindowState)
        {
            case (WindowState.Maximized):
            {
                ResizeMode = ResizeMode.CanResize; 
                WindowStyle = WindowStyle.SingleBorderWindow;
                WindowState = WindowState.Normal;
                break;
            }
            case (WindowState.Normal):
            {
                ResizeMode = ResizeMode.NoResize;
                WindowStyle = WindowStyle.None;
                WindowState = WindowState.Maximized;
                break;
            }
        }
    }
}


<.ExeDEV>

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Whismeril 11407 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention - 18 sept. 2016 à 10:13
Bonjour DevExe, je ne pense pas que ton code réponde au besoin de trkaan9.

Je cite
mais les composants se déforme.
, y a rien dans ton code qui gère les composants
Commenter la réponse de ExeDev
Whismeril 11407 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention - 18 sept. 2016 à 10:48
0
Utile
C'est dans le xaml qu'il faut gérer le comportement attendu lors d'un resize

Exemple 1
<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Label Content="Nom" HorizontalAlignment="Left" Height="28" Margin="27,35,0,0" VerticalAlignment="Top" Width="54"/>
        <Label Content="Adresse" HorizontalAlignment="Left" Height="27" Margin="27,68,0,0" VerticalAlignment="Top" Width="54"/>
        <Label Content="Code postal" HorizontalAlignment="Left" Height="27" Margin="22,101,0,0" VerticalAlignment="Top" Width="78"/>
        <Label Content="Ville" HorizontalAlignment="Left" Height="27" Margin="211,101,0,0" VerticalAlignment="Top" Width="61" RenderTransformOrigin="0.525,0.148"/>
        <TextBox HorizontalAlignment="Left" Height="28" Margin="105,35,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="402"/>
        <TextBox HorizontalAlignment="Left" Height="28" Margin="105,68,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="402"/>
        <TextBox HorizontalAlignment="Left" Height="28" Margin="255,101,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="252"/>
        <TextBox HorizontalAlignment="Left" Height="28" Margin="105,101,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="106" RenderTransformOrigin="0.476,1.786"/>

    </Grid>
</Window>


Dans cet exemple, j'ai posé les contrôle sur la Window avec leur comportement par défaut, on voit que les champs Height et Width ont une valeur, ainsi que des alignements Top et Left.

Du coup, en cas de resize, chaque composant garde sa taille initiale et sa position par rapport au coin haut gauche.


Si je veux que le label Ville et son textbx restent attaché au coin bas droit, il faut modifier l'alignement et les marges
<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
        MouseDoubleClick="Window_MouseDoubleClick">
    <Grid>
        <Label Content="Nom" HorizontalAlignment="Left" Height="28" Margin="27,35,0,0" VerticalAlignment="Top" Width="54"/>
        <Label Content="Adresse" HorizontalAlignment="Left" Height="27" Margin="27,68,0,0" VerticalAlignment="Top" Width="54"/>
        <Label Content="Code postal" HorizontalAlignment="Left" Height="27" Margin="22,101,0,0" VerticalAlignment="Top" Width="78"/>
        <Label Content="Ville" HorizontalAlignment="Right" Height="27" Margin="0,0,240,183" VerticalAlignment="Bottom" Width="61" />
        <TextBox HorizontalAlignment="Left" Height="28" Margin="105,35,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="402"/>
        <TextBox HorizontalAlignment="Left" Height="28" Margin="105,68,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="402"/>
        <TextBox HorizontalAlignment="Right" Height="28" Margin="0,0,10,183" TextWrapping="Wrap" VerticalAlignment="Bottom" Width="252"/>
        <TextBox HorizontalAlignment="Left" Height="28" Margin="105,101,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="106" />

    </Grid>
</Window>


Si tu veux que les textbox Nom et Adresse prennent toute la largeur, il ne faut pas de width ou width Auto et l'alignement Strecth, ce sont les marges qui feront foie.
<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
        MouseDoubleClick="Window_MouseDoubleClick">
    <Grid>
        <Label Content="Nom" HorizontalAlignment="Left" Height="28" Margin="27,35,0,0" VerticalAlignment="Top" Width="54"/>
        <Label Content="Adresse" HorizontalAlignment="Left" Height="27" Margin="27,68,0,0" VerticalAlignment="Top" Width="54"/>
        <Label Content="Code postal" HorizontalAlignment="Left" Height="27" Margin="22,101,0,0" VerticalAlignment="Top" Width="78"/>
        <Label Content="Ville" HorizontalAlignment="Right" Height="27" Margin="0,0,240,191" VerticalAlignment="Bottom" Width="61"/>
        <TextBox HorizontalAlignment="Stretch" Height="28" Margin="105,35,10,10" TextWrapping="Wrap" VerticalAlignment="Top" Width="Auto"/>
        <TextBox HorizontalAlignment="Stretch" Height="28" Margin="105,68,10,0" TextWrapping="Wrap" VerticalAlignment="Top"/>
        <TextBox HorizontalAlignment="Right" Height="28" Margin="0,0,10,191" TextWrapping="Wrap" VerticalAlignment="Bottom" Width="252"/>
        <TextBox HorizontalAlignment="Left" Height="28" Margin="105,101,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="106"/>

    </Grid>
</Window>



Même principe si tu veux que le TextBox Adresse prenne toute la hauteur disponible
<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
        MouseDoubleClick="Window_MouseDoubleClick">
    <Grid>
        <Label Content="Nom" HorizontalAlignment="Left" Height="28" Margin="27,35,0,0" VerticalAlignment="Top" Width="54"/>
        <Label Content="Adresse" HorizontalAlignment="Left" Height="27" Margin="27,68,0,0" VerticalAlignment="Top" Width="54"/>
        <Label Content="Code postal" HorizontalAlignment="Left" Height="27" Margin="22,101,0,191" VerticalAlignment="Bottom" Width="78"/>
        <Label Content="Ville" HorizontalAlignment="Left" Height="27" Margin="211,0,0,192" VerticalAlignment="Bottom" Width="61"/>
        <TextBox HorizontalAlignment="Stretch" Height="28" Margin="105,35,10,10" TextWrapping="Wrap" VerticalAlignment="Top" Width="Auto"/>
        <TextBox HorizontalAlignment="Stretch" Margin="105,68,10,225" TextWrapping="Wrap" VerticalAlignment="Stretch"/>
        <TextBox HorizontalAlignment="Stretch" Height="28" Margin="250,0,10,191" TextWrapping="Wrap" VerticalAlignment="Bottom"/>
        <TextBox HorizontalAlignment="Left" Height="28" Margin="105,101,0,191" TextWrapping="Wrap" VerticalAlignment="Bottom" Width="106"/>

    </Grid>
</Window>

Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.