none
Positionnement d’une fenêtre en WPF (Propriétés Top et Left) avec dpiAwareness sur PerMonitorV2 RRS feed

  • Discussion générale

  • Bonjour

    Pour un projet en WPF en VB, je récupère les coordonnées souris pour afficher une fenêtre sur le bureau en fonction du rectangle de sélection défini par l’utilisateur.

    Afin de récupérer l’échelle par écran à l'aide d'une API, j’ai créé un fichier manifeste avec la reconnaissance DPI par écran.

    <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>

    Dans un projet de test, j’ai remarqué des problèmes concernant le mauvais positionnement de ma fenêtre par rapport à la demande de placement.

    Voici mes essais avec la propriété Left d’une fenêtre :

    Définition écran 1 : 1680x1050

    Définition écran 2 : 1600x900

    Ecran 1 =100% - Ecran 2 = 150%

    Fenêtre sur l’écran 1, demande de déplacement vers l’écran 2

    Demande Left = 1680 après déplacement Left =1120 sur l’écran 2

    Left a été divisé par 1.5 après déplacement

    Fenêtre sur l’écran 2, demande de déplacement vers l’écran 1

    Demande Left = 100 après déplacement Left =150 sur l’écran 1

    Left a été multiplié par 1.5 après déplacement

     

    Ecran 1 =150% - Ecran 2 = 100%

    Fenêtre sur l’écran 1, demande de déplacement vers l’écran 2

    Demande Left = 1680 après déplacement Left =2520 sur l’écran 2

    Left a été multiplié par 1.5 après déplacement

    Fenêtre sur l’écran 2, demande de déplacement vers l’écran 1

    Demande Left = 100 après déplacement Left =66.66 sur l’écran 1

    Left a été divisé par 1.5 après déplacement

    Cette gestion des valeurs des propriétés de positionnement est-elle correcte ?

    Sans la reconnaissance DPI par écran, le positionnement de la fenêtre respecte bien les coordonnées demandées. Les propriétés Top et Left ne se modifient pas malgré les différentes échelles.

    Peut-on empêcher le redimensionnement des valeurs Top et Left de la fenêtre ?




    samedi 6 juin 2020 14:12