0 oy
729 gösterim

C# ile masaüstü uygulaması geliştiriyorum. Fakat uygulamamda ilginç bir sorun ortaya çıkıyor. Uygulamamda ekranın çözünürlüğünü aşağıda ki kodla aldırıyorum. Ekran çözünürlüğüm normalde 1920x1080. Fakat bu kod bana 1536x864 döndürüyor. Kodda mı sorun var yoksa başka bir sorun mu var anlayamadım. Yardımcı olur musunuz?

double height = System.Windows.SystemParameters.PrimaryScreenHeight;
double width = System.Windows.SystemParameters.PrimaryScreenWidth;

1 cevap

0 oy
 
En İyi Cevap

Merhaba Ali,

Belirtmiş olduğun sorunu önceden bende yaşamıştım laugh Yabancı kaynaklardan araştırma yaparak sorunun kaynağını tespit edebilmiştim. Formunun Load olayına veya ekran çözünürlüğü ile ilgili işlem yapmadan önce SetDpiAwareness() yöntemini çağırmalısın. Kodları aşağıda paylaşıyorum. 

Kodu sitemizden kopyalamayanlar bu linkten koda erişebilirler.

private enum ProcessDPIAwareness

{

  ProcessDPIUnaware = 0,

  ProcessSystemDPIAware = 1,

  ProcessPerMonitorDPIAware = 2

}

 

[DllImport("shcore.dll")]

private static extern int SetProcessDpiAwareness(ProcessDPIAwareness value);

 

private static void SetDpiAwareness()

{

  try

  {

    if (Environment.OSVersion.Version.Major >= 6)

    {

      SetProcessDpiAwareness(ProcessDPIAwareness.ProcessPerMonitorDPIAware);

    }

  }

  catch (EntryPointNotFoundException)//this exception occures if OS does not implement this API, just ignore it.

  {

  }

}

Türkiye'nin en iyi soru cevap sitesi | SorSoyleyelim.com

İlgili sorular


Web sitemiz hakkında ki reklam,istek,öneri ve şikayetlerinizi iletisim(at)sorsoyleyelim.com adresine mail atabilir veya sitemizin iletişim formu üzerinden bize yazabilirsiniz.
Sitede ki içeriklerin izinsiz kullanılması ya da kopyalanması yasaktır. Bknz: Kullanım şartları.
...