2010-07-19 25 views
5

Onay kutularında bir stackpanel var. Kenar boşluklu onay kutularının arasında aynı boşluk bırakılamıyor gibi görünüyorWPF: Stackpanel öğelerindeki aralıklar arasındaki boşluk

Bazıları bana yanlış ne yapıyorum söyle? Gördüğünüz gibi

http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png

, elemanları arasındaki mesafe sabit değildir:

Aşağıdaki kod bu bana verir!

<StackPanel MinWidth="150" cal:Bind.Model="{Binding}" Orientation="Horizontal"> 
    <StackPanel.Resources> 
     <Style TargetType="{x:Type CheckBox}"> 
      <Setter Property="Margin" Value="0,0,20,0"/> 
     </Style> 
    </StackPanel.Resources> 
    <CheckBox IsChecked="{Binding IsShown}" Content="{Binding ModuleName, Converter={StaticResource localizeModuleAndFunctionConverter}}" 
       cal:Message.Attach="[Event Click] = [Action FilterShownModuleFunctions]" /> 
</StackPanel> 
+0

Resmi buraya ekleyebilir misiniz? – Amsakanna

+0

CheckBox'ların StackPanel içinde olduğundan emin misiniz? Checkbox için tanımlanmış bir genel stil olup olmadığını kontrol edebilir misiniz? – Ragunathan

+1

Bu StackPanel "bağımsız" mı yoksa bir çeşit ItemsControl panel mi? Örneğinizde yalnızca bir CheckBox gösterdiğinizde, resmin kodla nasıl eşleştiğini anlatması zor. –

cevap

4

Sorununuzu tahmin ediyorum, MinWidth = "150" özelliği. Sanırım şu an toplamda 5 yığın var. Her biri kendi onay kutularını tutan 4 adet yığın paneliniz var. Öyleyse, 4 yığın panelinizi tutan 5. yığın paneliniz olduğunu varsayarak düşünüyorum.

Eğer bu doğruysa ... o zaman sorun, onay kutularının her birinin 150 genişlikte (minimum) bir yığın panelde olması, ancak üçüncü yığın panelinizin 150'den büyük olması, çünkü metnin çok uzun olması gerekir. tüm metni içerecek şekilde daha büyük (artı 20 oranınız).

MinWidth = "150" öğesini kaldırın ve her onay kutusunun metni arasında 20'lık bir kenar boşluğu elde edeceğinizi düşünüyorum. (onay kutularının gerçek kutuları arasında boşluk bırakılmasını istiyorsanız, o zaman minimuma devam etmeli, ancak en az uzun metin içeren onay kutusu kadar geniş olmasını sağlamalısınız).

+0

Ah, iyi tahmin. Ben bu şekilde düşünmedim - her bir CheckBox kendi başına bir değil çok bir StackPanel-to-CheckBoxes oranı kabul ettim. Sanırım bu "neden?" Sorusunu yalvardı. ama burada sorulmakta olan şey bu değil ... :) –

+0

thanx alot. MinWidth prop değiştiriyordum ama yardımcı olmadı. Bunu kaldırmak, gerçek onay kutularını değil, metin arasında boşluk bırakmak istediğimde yardımcı oldu. Başka bir soru yapmadan önce, belki de buraya sorabilirim ... Düğmeler için ayar genişliğinden kurtulmak istiyorum. Tüm uygulamadaki metne bağlı olarak tüm dünyada düğmeleri yeniden boyutlandırma yolu nedir? Bu bir soru ... ikincisi, birbirinin yanındaki üç düğüme sahipse, tüm aynı genişliği nasıl ayarlayacağım (en büyük düğmenin genişliği). Umarım mantıklıyım ... – no9

+0

nevermind, ben uniformgrid kullanarak çözdüm! – no9