En iyi yanıtlayıcılar
C# Kodlarla Ekranın Kaç DPI Olduğunu Öğrenmek

Soru
-
Yanıtlar
-
Evet öğrenebilirsiniz, güncel C# kullanıyorsanız kod şu şekilde:
[DllImport("gdi32.dll")] static extern int GetDeviceCaps(IntPtr hdc, int nIndex); [DllImport("user32.dll")] static extern IntPtr GetDC(IntPtr hWnd); const int LOGPIXELSX = 88; const int LOGPIXELSY = 90; static (int Dpix, int Dpiy) GetDPI() { IntPtr hdc = GetDC(IntPtr.Zero); return (GetDeviceCaps(hdc, LOGPIXELSX), GetDeviceCaps(hdc, LOGPIXELSY)); }
Fakat, güncel Winforms ve WPF DPI bağımsız tasarım özelliğine sahipler. Normal şartlarda bunu yapmanız gerekmemeli.
- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 6 Aralık 2019 Cuma 11:15
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 6 Aralık 2019 Cuma 12:26
Tüm Yanıtlar
-
Evet öğrenebilirsiniz, güncel C# kullanıyorsanız kod şu şekilde:
[DllImport("gdi32.dll")] static extern int GetDeviceCaps(IntPtr hdc, int nIndex); [DllImport("user32.dll")] static extern IntPtr GetDC(IntPtr hWnd); const int LOGPIXELSX = 88; const int LOGPIXELSY = 90; static (int Dpix, int Dpiy) GetDPI() { IntPtr hdc = GetDC(IntPtr.Zero); return (GetDeviceCaps(hdc, LOGPIXELSX), GetDeviceCaps(hdc, LOGPIXELSY)); }
Fakat, güncel Winforms ve WPF DPI bağımsız tasarım özelliğine sahipler. Normal şartlarda bunu yapmanız gerekmemeli.
- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 6 Aralık 2019 Cuma 11:15
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 6 Aralık 2019 Cuma 12:26
-
GetDeviceCaps ya da Graphics dpiX, dpiY ile alabiliyorsun. .Net dokumentasyonunda dpi awareness'i okuyunuz bence. Muhtemelen sadece dpi aware yapmak isteyebilirsiniz (ben henüz faydasını görmedim kendi adıma).
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.