SORU
29 Mart 2014, CUMARTESİ


Nasıl Win otomatik terazi sistemi yazı tipi ve dpi ayarları için kod yazmak için?

İntro:"Win otomatik ölçek/font ayarlarını iyi DPİ; WPF geçmek bilmiyor." ki orada yorum var Ancak, bu temel üzerinde olduğunu düşünüyorum .NET 1.1; aslında otomatik Ölçekleme uygulamada oldukça iyi bir iş çıkarmış gibi görünüyor .NET 2.0. En azından bizim araştırmaya dayalı ve şimdiye kadar test. Eğer orada biraz daha iyi ancak, sizden duymak isteriz.(Lütfen WPF geçmemiz gerektiğini savunarak, zahmet etmeyin... şu an bir seçenek değil.)

Soru:

  • Win otomatik ölçekli düzgün ve bu nedenle kaçınılmalıdır.

  • Tasarımı programcılar Win kod oto-skala gibi yazarken izleyin ne yapmalıyım?

Tasarım Yönergeleri şimdiye kadar tespit edilmiştir:

Aşağıda community wiki answer bkz.

Onlar herhangi bir yanlış ya da yetersiz? Kabul etmeliyiz diğer kurallar? Kaçınılması gereken başka desenleri var mı? Bu konuda başka herhangi bir rehberlik çok mutluluk duyacağız.

CEVAP
21 NİSAN 2015, Salı


Ölçekleme düzgün: desteklemeyen kontrol eder

  • SplitContainer's Panel1MinSize, Panel2MinSize ve 3* *özellikleri

Tasarım Kuralları:

  • Tüm ContainerControls aynı AutoScaleMode = Font ayarlanmalıdır. (Yazı tipi sistem yazı tipi hem DPİ değişiklikleri ve değişiklikleri ele alacak boyutu ayarı; DPİ DPİ tek değişiklik, değişiklik değil idare eder sistem yazı tipi boyutu ayarı.)

  • Tüm ContainerControls de AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);, 96 dpi (sonraki kurşun) varsayarak ile ayarlanmalıdır. Otomatik eklenen tasarımcı tarafından. DPI dayalı tasarımcısı... açın ama eksikti en eski tasarımcısı bizim dosyaların çoğu. Belki De Visual Studio .(NET VS 2005 tarihinden önce sürüm) düzgün ekleme değildi.

  • Tüm tasarımcı 96 dpi (geçiş yapabiliriz işi 120dpi; ama internette bilgelik 96 dpi ayrılmamak için diyor ki; deneme sipariş var; tasarım, sadece AutoScaleDimensions çizgi tasarımcısı ekler) değişiklikler kadar önemli olmamalı.

  • Sen hiç kapsayıcı düzeyinde Yazı... tek ayarlanmış olduğundan emin yaprak kontrol eder. (Ayar bir Kap üzerindeki Yazı kapatmak gibi görünüyor bu kabın otomatik ölçeklendirme.)

  • Right Bottom içsel bağlantılı Çapa... onun kullanmayın konumlandırma otomatik ölçekli değil; bunun yerine, bir Panel açılır veya diğer kabın içine içsel çapanı diğer Kontroller bu Panel; Panel Dock Right Dock Bottom kullanın UserControl.

  • Kontrol sadece kontrol ResumeLayout sonunda ne zaman listeler eğer InitializeComponent otomatik ölçeklendirilmesi denir... dinamik olarak kontrol eder, sonra sana ihtiyacım var SuspendLayout();Ekle AutoScaleDimensions = new SizeF(6F, 13F); AutoScaleMode = AutoScaleMode.Font; Eklemeden önce ResumeLayout(); kontrol. Ve konumlandırma da eğer Dock kullanıyorsanız değil, düzeltilmesi gerekir modlar ya da bir Düzen Yöneticisi FlowLayoutPanel TableLayoutPanel gibi.

  • Temel sınıflar ContainerControl türetilen Inherit (varsayılan değer sınıfı ContainerControl; ama varsayılan ayarlanmadı tasarımcı tarafından belirlenmiş) AutoScaleMode ayarlı bırakın. Eğer siz buna başka bir şey, ve sonra türetilmiş sınıf çalışır ayarlamak için Yazı tipi (olarak), sonra hareket ayarı için Font temizlemek tasarımcı ayarı AutoScaleDimensions sonuç olarak aslında geçmek kapalı otomatik ölçeklendirme! (Bu kılavuz önce birlikte hiç bir tasarımcı... Tüm Dersler yaprak ya da sınıflar gibi temel sınıflar olarak tasarlanmalıdır temel sınıflar oluşturmak anlamına gelir!)

  • Tasarımcısı Form.MaxSize statik / kullanmaktan kaçının. Formda MinSize MaxSize Her şey gibi ölçekli değil. Bu yüzden, eğer yaptığınız tüm çalışmalarınızda 96 dpi, o zaman en yüksek DPİ MinSize olmayacak sorunlara neden olur, ama olmayabilir gibi kısıtlayıcı olarak beklenen, ama senin MaxSize Mayıs limit Boyutunu ölçekleme, hangi sorunlara yol açabilir. İsterseniz MinSize == Size == MaxSize, yapmayın Tasarımcı... bunu içinde veya kurucu OnLoad geçersiz... hem MinSize MaxSize düzgün ölçekli Boyutu.

  • Belirli bir Panel Container Denetimlere tüm Demirleme veya Yanaşma kullanmanız gerekir ya. Onları karıştırırsanız, otomatik Ölçekleme Panel tarafından sıkça yapılan ince garip bir şekilde işe yaramaz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • GenTechPC

    GenTechPC

    1 Temmuz 2007
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013