Metin kutusuyla bir uygulamam var ve ekrandaki metin kutusunun genişliği, kullanıcının ekranında her zaman 17,5 cm olmalıdır.Metin kutusuna 17,5 cm sabit genişlik nasıl verilir?
const double centimeter = 17.5; // the width I need
const double inches = centimeter * 0.393700787; // convert centimeter to inches
float dpi = GetDpiX(); // get the dpi. 96 in my case.
var pixels = dpi*inches; // this should give me the amount of pixels
textbox1.Width = Convert.ToInt32(pixels); // set it. Done.
private float GetDpiX()
{
floar returnValue;
Graphics graphics = CreateGraphics();
returnValue = graphics.DpiX;
graphics.Dispose(); // don’t forget to release the unnecessary resources
return returnValue;
}
Ama bu bana farklı çözünürlüklerde farklı boyutlarda verir:
Bu defa denedim budur.
O 1024 x 768 ile 1680 x 1050 ve 21,5 cm ile bana 13 cm verir.
Neyi yanlış yapıyorum?
"Ekrandaki metin kutusu, her zaman kullanıcının ekranında 17,5 cm olmalıdır." - Bu garip bir gerekliliktir .... –
Evet ... öyle. Müşteriniz size bu şartı verdiyse, ona 'tard' olduğunu söyle. – mpen
Belki garip bir gereklilik, ancak ilginç bir soru daha az değil. Ekran çözünürlüğünü manuel olarak ayarlama, elinizdeki DPI'yı manuel olarak hesaplama ve GetDpiX() ve GetDpiY() 'nin çıktılarıyla eşleşip eşleşmediğini görmek nasıl olur? Tüm monitörler bu işlevselliği desteklemiyor olabilir mi? – Bryan