2014-07-07 12 views
5

Mam następujący kod w WPF XAML:Set Przycisk Rozmiar do treści Rozmiar w aplikacji WPF

<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> 

mam ustawić szerokość i wysokość przycisk „Auto”, ale nadal ciągnie kompletny poziome szerokość . Co ja robię źle? Nie chcę podawać zakodowanych wartości dla szerokości i wysokości!

+1

Spróbuj, ustawiając

Odpowiedz

8

Używasz niewłaściwego rodzaju sterowania pojemnikiem. Zmieniono jego zawartość, aby zmienić rozmiar. Spróbuj Grid zamiast:

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

Ponadto, nie trzeba ustawić Width i Height do "Auto", jako wartości domyślne pozwoli Button aby rozciągnąć do wypełnienia jego kontenerze nadrzędnym (w zależności od kontroli pojemnika) . Zobacz stronę Panels Overview na stronie MSDN, aby uzyskać więcej informacji na temat różnic między różnymi kontrolkami kontenera w WPF.

+0

Możesz także upuścić siatkę i umieścić przycisk bezpośrednio jako zawartość 'Window'. –

+2

Próbowałem umieścić przycisk w siatce, ale teraz przycisk zajmuje cały ekran zamiast rozmiaru zawartości. Wygląda na to, że muszę podzielić siatkę na rzędy i kolumny. –

+1

Ustaw "HorizontalAlignment" i "VerticalAlignment' na" Center ", a przycisk dopasuje się do zawartości. –

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

Jak powiedział Sheridan, nie trzeba ustawiać szerokości i wysokości na "Auto". Twój problem polega na tym, że domyślne wyrównanie zawartości StackPanel to "Rozciągnięcie". Po prostu ustaw właściwość HorizontalAlignment swojego przycisku na "Left" lub "Right".

Powiązane problemy