CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème avec WindowState.Maximized

BlendSkill
BlendSkill
Niveau 2
11 novembre 2019 à 19:03:43

Bonjour, je suis en train de programmer en C# et j'ai voulu faire un système pour que ma fenêtre ne puisse pas être redimensionnée lorsqu’elle est en petit écran. Voici le code que j'ai utilisé :

MainWindow.SizeChanged += (o, e) => { ResizeWindow(); };
MainWindow.StateChanged += (o, e) => { ResizeWindow(); };

public void ResizeWindow()
        {
            if (MainWindow.WindowState != WindowState.Maximized)
            {
                MainWindow.MaxWidth = 1920 / 2;
                MainWindow.MaxHeight = 1080 / 2;
                MainWindow.MinWidth = 1920 / 2;
                MainWindow.MinHeight = 1080 / 2;
            }
            else
            {
                MainWindow.MaxWidth = Double.PositiveInfinity;
                MainWindow.MaxHeight = Double.PositiveInfinity;
                MainWindow.MinWidth = 0;
                MainWindow.MinHeight = 0;
            }
 
        }

La première partie de la méthode pour empêcher le redimensionnement fonctionne mais quand je remet la fenêtre en plein écran, elle est dans l'état "Maximized" mais visuellement elle reste toute petite. Comment faire pour qu'elle retrouve sa taille d'origine svp ?

Voici ce qui se passe en vidéo : https://streamable.com/vpqaq

boucif
boucif
Niveau 24
11 novembre 2019 à 20:04:38

Tu sais que tu peux interdire le faite de redimensssione une fenêtre au lieu de faire des verif bizarre
https://docs.microsoft.com/en-us/dotnet/framework/wpf/app-development/wpf-windows-overview

BlendSkill
BlendSkill
Niveau 2
11 novembre 2019 à 21:46:11

Je connais NoResize mais ça me semble incompatible avec Maximized, si je met NoResize et Maximized en même temps la barre des taches disparaît.

boucif
boucif
Niveau 24
11 novembre 2019 à 22:52:01

En faite tu veux gérer quoi ?
2 tailles une maximize et l'autre en /2 ?

Enleve le else et tout son code peut être que ça marchera mieux, en espérant que ça rappel pas la méthode resize en boucle :rire:

MainWindow.SizeChanged += (o, e) => { ResizeWindow(); };
MainWindow.StateChanged += (o, e) => { ResizeWindow(); };

public void ResizeWindow()
        {
            if (MainWindow.WindowState != WindowState.Maximized)
            {
                MainWindow.MaxWidth = 1920 / 2;
                MainWindow.MaxHeight = 1080 / 2;
                MainWindow.MinWidth = 1920 / 2;
                MainWindow.MinHeight = 1080 / 2;
            }
           
 
        }
Message édité le 11 novembre 2019 à 22:53:08 par boucif
BlendSkill
BlendSkill
Niveau 2
12 novembre 2019 à 07:20:40

Non ça ne change rien

BlendSkill
BlendSkill
Niveau 2
12 novembre 2019 à 15:57:34

C'est bon j'ai trouvé la solution, il suffisait d'actualiser la fenêtre avec Visibility, voici le code final qui fonctionne nickel (j'ai juste rajouté 2 lignes à la fin) :

MainWindow.SizeChanged += (o, e) => { ResizeWindow(); };
MainWindow.StateChanged += (o, e) => { ResizeWindow(); };

public void ResizeWindow()
        {
            if (MainWindow.WindowState != WindowState.Maximized)
            {
                MainWindow.MaxWidth = 1920 / 2;
                MainWindow.MaxHeight = 1080 / 2;
                MainWindow.MinWidth = 1920 / 2;
                MainWindow.MinHeight = 1080 / 2;
            }
            else
            {
                MainWindow.MaxWidth = Double.PositiveInfinity;
                MainWindow.MaxHeight = Double.PositiveInfinity;
                MainWindow.MinWidth = 0;
                MainWindow.MinHeight = 0;
				MainWindow.Visibility = Visibility.Hidden;
                MainWindow.Visibility = Visibility.Visible;
            }
 
        }
BlendSkill
BlendSkill
Niveau 2
12 novembre 2019 à 15:58:20

Merci boucif

boucif
boucif
Niveau 24
12 novembre 2019 à 23:31:29

De rien mais ton code me semble trop complexe il y a surement plus simple.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment