2014-07-07 17 views
5

Ben WPF XAML aşağıdaki kod: Ben "Auto" Düğme genişliğini ve yüksekliğini ayarlamış ama yine de tam yatay genişliği uzanıyorAyar Düğmesi Boyut

<Window x:Class="WPFDemo.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 

    <StackPanel> 
     <Button Content="Hello World" Width="Auto" Height="Auto"></Button> 
    </StackPanel> 


</Window> 

. Neyi yanlış yapıyorum? Genişlik ve yükseklik için kodlanmış bir değer sağlamak istemiyorum!

+1

cevap

8

Yanlış türde kapsayıcı kontrolü kullanıyorsunuz. StackPanel, içeriğini yeniden boyutlandırmak için değerini yapmaz. Deneyin bir Grid yerine: varsayılan değerler (konteyner kontrolü bağlı olarak) kendi üst kabı doldurmak için germek için Button sağlayacak şekilde

<Grid> 
    <Button Content="Hello" HorizontalAlignment="Center" VerticalAlignment="Center" /> 
</Grid> 

Ayrıca, "Auto" için Width ve Height ayarlamak gerekmez . WPF'deki çeşitli konteyner denetimleri arasındaki farklar hakkında daha fazla yardım için lütfen MSDN'deki Panels Overview sayfasına bakın.

+0

ayarını yapmayı deneyin. Ayrıca ızgarayı bırakıp düğmeyi doğrudan 'Window' içeriği olarak da ekleyebilirsiniz. –

+2

Düğmeyi Izgaraya koymaya çalıştım ancak şimdi Düğme, içeriğin boyutu yerine tüm ekranı alıyor. Grid'i Satırlara ve Sütunlara bölmek zorundayım gibi görünüyor. –

+1

'HorizontalAlignment' ve' VerticalAlignment' i 'Center' olarak ayarlayın ve düğme içeriğine uyacak. –

0
<Window x:Class="WPFDemo.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow"> 
    <Grid> 
     <Button Content="Hello World" Width="Auto" Height="Auto"></Button> 
    </Grid> 
</Window> 
1

Sheridan'ın dediği gibi, Genişlik ve Yükseklik ayarını "Otomatik" olarak ayarlamanız gerekmez. Sorununuz, StackPanel içeriğinin varsayılan hizalamasının "Stretch" olmasıdır. Bu yüzden, düğmenizin HorizontalAlignment özelliğini "Sol" veya "Sağ" olarak ayarlayın.