Wpf plein écran

Messages postés
1
Date d'inscription
dimanche 21 août 2016
Dernière intervention
21 août 2016
- - Dernière réponse : Whismeril
Messages postés
12390
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
- 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 

Votre réponse

2 réponses

Messages postés
4
Date d'inscription
dimanche 18 septembre 2016
Dernière intervention
18 septembre 2016
0
Merci
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
Messages postés
12390
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
-
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
Messages postés
12390
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
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.