0 oy
114 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

KATEGORİLER

Windows
Android
IOS
Nasıl yapılır?
Nedir?
Hata çözümleri
SQL
FastReport
DevExpress
C#


Web sitemiz hakkında ki istek,öneri ve şikayetlerinizi iletisim(at)sorsoyleyelim.com adresine mail atabilirsiniz.
Web sitemizde ki içeriklerin izinsiz kullanılması ya da kopyalanması yasaktır. Bknz: Kullanım şartları.
...