2014-09-27 16 views
7

enter image description here, Windows DPI

başvurum% 100 DPI ayarı ile iyi görünüyor ölçekleme Forms, ancak kullanıcı (% 125 veya% 150) farklı seçtiğinde kelimeler kaplarda uymaz. ne yazık ki% 125 için aynı yapmadığını, 150% ayarını sabit

this.AutoScaleMode = AutoScaleMode.Dpi; 

(bunu biraz bulanıklık yapılmış, ancak sorun değil): hangi Detect windows font size (100%, 125%, 150%): Ben burada bulunan çözüm ile bu sorunu gidermek için çalıştı PC'de kullanılan uygulama çalıştırmak için tasarlanmıştır.

Bunun için bazı kolay düzeltmeler var mı yoksa her formu el ile yeniden düzenlemek zorunda mıyım?

+1

, Windows ölçekleme devralır ve pencere bir bitmap halinde kendisini çizmek izin verir,% 150 'de http://stackoverflow.com/questions/4075802/creating-a-dpi-aware-application – stuartd

+1

bakın. Ardından, o bitmapi ekrana daha büyük hale getirmek için yeniden boyutlandırır. Evet, bu bulanık görünüyor, bunu durdurmak için [dpiAware] (http://stackoverflow.com/a/13228495/17034) kendiniz ilan etmelisiniz. Kesinlikle DPI'nın farkında değilsiniz, ancak bir şekilde kontrollerin kendilerini doğru bir şekilde yeniden ölçeklendirmesini durdurdunuz. Normalde yaptıkları gibi, bir ekran görüntüsü hiçbir zaman bir kodlama problemini göstermenin iyi bir yolu değildir. Formun Yazı tipi özelliği ile ilgili bir şey olabilir, onu atamayın. –

+0

@HansPassant Yazı tipi boyutunu 12 olarak değiştirdim, bu sorunlara neden oluyor mu? –

cevap

4

Creating a DPI-Aware Application

Tüm konteynerler aynı AutoScaleMode kullanmalıdır - Bu bölüm

pencere uygulaması farklı çözünürlüklerde aynı düzene sahip olması gereklidir benim sorunum sabit düzeni üzerinde hiçbir etkisi olmamalıdır demektir Çözünürlük değişen uygulama. İşte bunu yapmak için adımlar.

  1. Kullanım masa düzeni paneli
  2. Drag TableLayoutPanel hücresinde kontrolü ve set çapa ve mülkiyeti keserim.
  3. Hücreleri birleştirmek için sürüklenen denetimin rowspan ve colspan özelliklerini ayarlayın.
  4. Sürüklenen denetimin kenar boşluğunu ve dolguyu hücreye göre ayarlayın.
  5. sürükle tüm kontrolleri ve set Şimdi tüm sütunlar ve satırlar TableLayoutPanel = autosize büyüklüğü (veya% olarak) TableLayoutPanel
  6. kullanarak aynı adımları, tam bir tasarım izleyin
  7. Seti TableLayoutPanel özellikleri autosize = true, autosizemode = büyümek ve küçültmek
  8. Forms özelliklerini ayarlayın autosize = true, autosizemode = büyüyün ve küçültün
  9. Windows uygulamasını çalıştırın Windows uygulamanız maksimum durumda açılırsa, tablelayoutpanel dock özelliğini = dolgu olarak ayarlayın.
+1

Tablo mizanpajı panelini kullanır ve kenar boşluğu ve dolgulamayı ayarlarsanız, [kötü bir zamanda olabilirsiniz] (https://support.microsoft.com/en-us/help/3044516/nested-tablelayoutpanel-is-displayed- büyük-boş-boşluk-in-bir-windows-form-uygulama-yüksek-dpi-monitörler ile) - daha iyi bu masa düzeni panelleri yuva etmeyin emin olun. –

-2

Bu kod snipshet benim için mükemmel çalıştı. Pencere uygulaması farklı çözünürlüklerde aynı düzene sahip olması gerekmektedir (2013 Visual Studio Express Kullanarak)

http://urenjoy.blogspot.it/2008/11/make-resolution-independent-windows-app.html

çözünürlük değiştirme konusunda uygulamanın düzeni üzerinde hiçbir etkisi olmamalıdır anlamına gelir. İşte bunu yapmak için adımlar.

  • Kullanım masa düzeni paneli
  • Drag TableLayoutPanel hücresinde kontrolü ve set çapa ve mülkiyeti keserim.
  • Hücreleri birleştirmek için sürüklenen denetimin rowspan ve colspan özelliklerini ayarlayın.
  • Sürüklenen denetimin kenar boşluğunu ve dolguyu hücreye göre ayarlayın.
  • sürükle tüm kontrolleri ve set Şimdi tüm sütunlar ve satırlar TableLayoutPanel = autosize büyüklüğü (veya% olarak) TableLayoutPanel
  • kullanarak aynı adımları, tam bir tasarım izleyin
  • Seti TableLayoutPanel özellikleri autosize = true, autosizemode = büyümek ve küçültmek
  • Forms özelliklerini ayarlayın autosize = true, autosizemode = büyüyün ve küçültün
  • Windows uygulamasını çalıştırın Windows uygulamanız maksimum durumda açılırsa, tablelayoutpanel dock özelliğini = dolgu olarak ayarlayın.
+0

Bu, kabul edilen cevapla aynı cevap değil mi? –

İlgili konular