2009-06-17 4 views
14

Mã sau đây đặt hai phần tử văn bản ở trên cùng ngay cả khi phần tử thứ hai được đánh dấu "Dưới cùng". Màu nền chuyển xuống đáy để DockPanel dường như kéo dài xuống đáy.Tại sao DockPanel.Dock = "Bottom" đặt phần tử ở trên cùng?

Tôi không hiểu gì về 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> 

Trả lời

31

By default mục cuối cùng của DockPanel sẽ lấp đầy khu vực nội dung còn lại.

Nếu bạn đặt LastChildFill="False" trên DockPanel, bạn sẽ thấy hành vi bạn đang mong đợi. Bạn cũng có thể đặt VerticalAlignment="Bottom" trên TextBlock.

+0

Rất có khả năng xảy ra ở đây. xem: http://msdn.microsoft.com/en-us/library/system.windows.controls.dockpanel.lastchildfill.aspx –

+0

cảm ơn, điều đó có hiệu quả, tôi nhớ đã thấy thuộc tính đó, bây giờ biết nó là gì –