SORU
9 Temmuz 2010, Cuma


Nasıl DockStyle kullanmak için.WPF standart kontroller için dolgu?

WPF için çok yeniyim. Ben bir panel oluşturmak, iç kontrolleri ve DockStyle vermek windows formları alışkınım.Çevre paneline büyüklüğü dışında max doldurun.

WPF aynı olmasını istiyorum. Sekme denetimi var ve boyutunu mümkün olduğu kadar form doldurmak istiyorum. Şerit kontrol () RibbonControlsLibrary var ve formun geri kalanı max boyutta sekme denetimi ile dolu olmak istiyorum.

(Visual Studio, eski yerleştirme mekanizmaları sadece) yerleştirme gibi kontrolleri dock istemiyorum

CEVAP
11 Temmuz 2010, Pazar


Win WPF eşdeğer' DockStyle.Doldurun

HorizontalAlignment="Stretch" VerticalAlignment="Stretch"

Bu neredeyse denetimleri için varsayılan değer budurgenel olarak hiç bir WPF denetimi için üst kabı doldurmak için yapmak zorunda değilsin: Otomatik olarak yaparlar. Bu minimum boyut çocuklarını sıkmayın tüm kaplar için geçerlidir.

Yaygın Hataları

Şimdi beklendiği gibi çalıştığını HorizontalAlignment="Stretch" VerticalAlignment="Stretch" önlemek birçok yaygın hataları açıklayacağım.

1. Açık Yükseklik veya Genişliği

Ortak bir hata açıkça bir kontrol için bir Genişlik ve Yükseklik belirtin. Eğer bu varsa:

<Grid>
  <Button Content="Why am I not filling the window?" Width="200" Height="20" />
  ...
</Grid>

Sadece Genişlik ve Yükseklik öznitelikleri kaldırın:

<Grid>
  <Button Content="Ahhh... problem solved" />
  ...
</Grid>

2. İçeren panel en küçük boyut için kontrol sıkar

Başka bir yaygın hata içeren paneli gidecek kadar sıkı denetim sıkma. Örneğin dikey bir StackPanel her zaman içeriğini dikey olarak gidecek kadar küçük sıkın

<StackPanel>
  <Button Content="Why am I squished flat?" />
</StackPanel>

Başka bir Paneli değiştirin ve gitmek için iyi olacak:

<DockPanel>
  <Button Content="I am no longer squished." />
</DockPanel>

Ayrıca, "Otomatik" benzer şekilde bu yönde içeriğini sıkmak. olan Izgara satır veya sütun herhangi bir

Çocukları sıkmayın konteynerlerin bazı örnekler:

  • ContentControls asla çocuklarını (bu Sınır, Düğme, Onay kutusu, ScrollViewer, ve diğerleri) sıkın
  • Tek bir satır ve sütun ile ızgara
  • Kılavuz "*" satır ve sütun bulunur
  • DockPanel son çocuk sıkmak değil
  • Tabpage'ler içeriği sıkmak değil

Bu kaplar bazı örnekler onların çocukları sıkmak:

  • StackPanel Orientation yönünde sıkar
  • Izgara ile bir "Otomatik" boy satır veya sütun sıkar o yönde
  • DockPanel ama onların dock yönde son çocuğu sıkar
  • TabControl başlığını sıkar sekmesinde görüntülenir ()

3. Açık Yükseklik veya Genişliği daha fazla dışarı

Bu gibi: açık yükseklik ve genişlik verilen Kılavuz veya DockPanel görüyorum, inanılmaz bir şey

<Grid Width="200" Height="100">
  <Button Content="I am unnecessarily constrainted by my containing panel" />
</Grid>

Genel olarak hiç Panel açık bir Yükseklik veya Genişliği vermek istiyorum. Düzen sorunları tanımada ilk adım her açık Yükseklik kaldırın ya Genişliği.

4. Pencere olmaması gerekirken SizeToContent

SizeToContent kullandığınızda, içerik ve minimum boyut için sıkılmış olacak. Birçok uygulamada bu çok kullanışlı ve doğru seçimdir. Ama eğer sizin içeriğiniz "o zaman muhtemelen SizeToContent atlamak için isteyeceksiniz boyutu." doğal yok

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HDstarcraft

    HDstarcraft

    12 Mayıs 2009
  • Phandroid

    Phandroid

    26 Ocak 2009
  • The Dubstep FX

    The Dubstep

    5 Mart 2011