2011-07-27 28 views
9

C# kullanarak Windows Forms uygulaması oluşturmaya çalışıyorum.C# .NET'de DPI nasıl edinilir?

DPI'da .NET'i nasıl alabilirim?

Önceden DPI'yı almak için .NET'te kullanılabilen DPIX ve DPIY olduğunu daha önce okudum.

Bu doğru mu?

Herkese teşekkürler.

cevap

26

Graphics sınıfının bir örneğini kullanın. Sen (formun Load olay işleyicisi içinde olabilir) formunuzda yer alan aşağıdaki kullanarak bu olsun: dönüştürme piksel kullanımı DPI değerini, DPI (DPIX veya DpiY) kullanabilir işaret etmek

float dx, dy; 

Graphics g = this.CreateGraphics(); 
try 
{ 
    dx = g.DpiX; 
    dy = g.DpiY; 
} 
finally 
{ 
    g.Dispose(); 
} 
+0

olur? Veya piksel değerini bir noktaya dönüştürmek için bazı hileler var mı? Teşekkürler ... –

+0

Peki, bir piksel bir konumdur, bu yüzden bir X ve bir Y koordinatı vardır. X koordinatını ve Y koordinatını bulmak için DpiY'yi bulmak için DpiX'i kullanın. Aynı şey ölçekleme için de geçerlidir - yatay ölçek faktörü DpiY kullanılarak dikey ölçek faktörü olan DpiX kullanılarak belirlenir. –

+0

İyi bir cevap, "scaleControl" yönteminin (veya başka bir yerde bulunan) aşırı yüklenmesinden daha iyi. BTW, "varsayılan DPI'ya göre ölçek" istiyorsanız, bunu sadece 96.0f'ye bölmeniz gerekir. –