2016-03-18 3 views
0

Quand je suis en train d'obtenir la résolution réelle avec ma résolution 4K:Problèmes avec la résolution d'écran sur l'affichage 4K

Screen.PrimaryScreen.Bounds.Width 

Ou:

System.Windows.SystemParameters.PrimaryScreenWidth 

Il montrera la résolution 2560x1440. C'est bizarre quelques fois montrer la bonne résolution 3840x2160. Mais je ne sais pas comment c'est possible.

+1

Voir http://stackoverflow.com/questions/2236173/screen-resolution-problem-in-wpf WPF conserver les unités en fonction du DPI de l'adaptateur d'affichage et non des pixels. – Jay

Répondre

0

Le problème est dû au fait que Windows essaie de rendre les applications qui n'ont aucune gestion de ppp. Ainsi, Windows prétend qu'il exécute l'application sur une autre résolution. si vous utilisez Windows OS avec version majeure supérieure à 6,0, vous pouvez utiliser la fonction suivante:

private enum ProcessDPIAwareness 
{ 
     ProcessDPIUnaware = 0, 
     ProcessSystemDPIAware = 1, 
     ProcessPerMonitorDPIAware = 2 
} 

    [DllImport("shcore.dll")] 
    private static extern int SetProcessDpiAwareness(ProcessDPIAwareness value); 



    private static void SetDpiAwareness() 
     { 
      if (Environment.OSVersion.Version.Major >= 6) 
       { 
         SetProcessDpiAwareness(ProcessDPIAwareness.ProcessPerMonitorDPIAware); 
       } 
     }