2009-06-17 8 views
14

Poniższy kod umieszcza dwa elementy tekstowe u góry, mimo że drugi jest oznaczony "Bottom". Kolor tła przechodzi do samego końca, więc DockPanel wydaje się rozciągać do dołu.Dlaczego DockPanel.Dock = "Bottom" umieszcza element na górze?

Czego nie rozumiem w DockPanel?

<Window x:Class="TestIndexer934.Views.MainView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:c="clr-namespace:TestIndexer934.Commands" 
    Title="Main Window" Height="400" Width="800"> 
    <DockPanel HorizontalAlignment="Left" Background="Beige"> 
     <TextBlock DockPanel.Dock="Top" Text="Testing top"/> 
     <TextBlock DockPanel.Dock="Bottom" Text="Testing bottom"/> 
    </DockPanel> 
</Window> 

Odpowiedz

31

Przez default ostatnia pozycja danego DockPanel będzie wypełnić pozostałą zawartość obszar dostępny.

Jeśli ustawisz LastChildFill="False" w DockPanel, zobaczysz zachowanie, którego się spodziewasz. Możesz również ustawić VerticalAlignment="Bottom" na TextBlock.

+0

Całkiem prawdopodobna sprawa tutaj. zobacz: http://msdn.microsoft.com/en-us/library/system.windows.controls.dockpanel.lastchildfill.aspx –

+0

dzięki, że działa, pamiętam, widząc ten atrybut, teraz wiem, co to jest –