2008-10-13 19 views
26

Yani form'ın AutoScaleMode özelliği muhtemelen benim çalışma geliştirme makineden farklı bir yazı ya DPI bir sistemi desteklemek için nasıl yardımcı olabileceğini anlamaya çalışıyorum. SDK itibaren Destekleme DPI ve Varsayılan Yazı Değişiklikler

:

AutoScaleMode Sayım

kamu enum AutoScaleMode

None 
    Automatic scaling is disabled.  
Font 
    Controls scale relative to the dimensions of the 
    font the classes are using, which is typically the 
    system font. 
Dpi  
    Controls scale relative to the display resolution. 
    Common resolutions are 96 and 120 DPI. 

varsayılan .NET ile 2.0 Formlar AutoScaleMode.Font kullanın.

Ben de Windows XP, Tahoma 8 punto, 96 DPI geliştirme makinede bir örnek formu tasarlanmış. Sonra bir

  • 14 punto Segoe UI 96 DPI makinede bunu denedik
  • 14 Segoe UI 150 DPI makinesi

sonuç bu ekran görüntüsünde görebileceğiniz gibi, cesaret verici değildi nk:

AutoScaleMode mülkiyet

farklı yazı veya DPI ayarları desteği için bir .NET Formu sağlamak için tasarlanmamıştır. Yani , farklı yazı tiplerini ve DPI ayarlarını desteklemenin doğru yolu nedir?

cevap

5

doğru yolu, denetimleri ölçek formu kendisi ve içinde metindir. Bu çok karmaşık görünüyor, ancak AutoSize özelliği ile birlikte düzen denetimleri (TableLayoutPanel ve FlowLayoutPanel), bunu çok daha az zorlaştırır.

+0

Düzen paneller yukarıdaki formda herhangi bir kullanım olmaz, işler zaten çapa kullanılarak dışarı koydu. –

+1

Ankrajları değiştirin. Çapalar sorun. –

+0

Onları neyle değiştirin? Düğme 50dlus genişliğinde ve sağ ve alt kenardan 7dlus. –