2013-03-05 66 views
1

我有一個DockPanel和LastChildFill = true。它有4個孩子:一個StackPanel(頂部),另一個DockPanel(頂部)和另外三個StackPanels(底部,分別爲&)。最後一個StackPanel(「ResultsPanel」)沒有DockPanel.Dock屬性集,也沒有寬度/高度,但是當數據綁定導致的行多於屏幕上的行數時,它會繼續向下放置在底部的StackPanel後面。我希望它填補了我留在其他停靠的孩子之間的中心「洞」。爲什麼我的Dockpanel的LastChild溢出其容器?

如果我將ScrollBarVisibilities設置爲Auto,它甚至不會顯示它們。任何意見,將不勝感激。下面是相關代碼:

<DockPanel Name="JobsDock" LastChildFill="True"> 
<StackPanel DockPanel.Dock="Top" Height="40" > 
    <Label /> 
    <Border CornerRadius="5" Width="90" Height="25" > 
     <Label Content="Classic View" /> 
    </Border> 
</StackPanel> 
<DockPanel DockPanel.Dock="Top" Height="70" Name="SearchJobsPanel" > 
    <ComboBox Name="SearchOptionComboBox" VerticalAlignment="Bottom" Width="240" /> 
    <StackPanel Height="50" Name="JobPanel" Width="90" Visibility="Collapsed" VerticalAlignment="Bottom" > 
     <Label Content="Job Number" HorizontalAlignment="Center" /> 
     <TextBox Name="JobTextBox" /> 
    </StackPanel> 
    <StackPanel VerticalAlignment="Bottom" HorizontalAlignment="Right"> 
     <Button Height="25" Name="SearchButton" Width="90"> 
      <StackPanel Orientation="Horizontal"> 
       <Image Stretch="Fill" Margin="0,0,5,0" /> 
       <Label Content="Search" FontSize="10" VerticalContentAlignment="Top" /> 
      </StackPanel> 
     </Button> 
    </StackPanel> 
</DockPanel> 
<StackPanel Name="FiltersPanel" DockPanel.Dock="Left" Width="120" Opacity="0" > 
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> 
     <Button Name="ResetFilterButton" > 
      <Image Source="Images/ResetFilter.png" Width="30" /> 
     </Button> 
     <Button Name="ApplyFilterButton" > 
      <Image Width="30" /> 
     </Button>      
    </StackPanel> 
    <Label Name="ProjectsLabel" /> 
    <Label Name="TasksLabel" Margin="0,10,0,0" /> 
</StackPanel> 
<StackPanel Name="ResultsPanel" Opacity="0"> 
    <ListView x:Name="DisplayedJobListView" ScrollViewer.VerticalScrollBarVisibility="Visible" > 
     <ListView.View> 
      <GridView> 
      </GridView> 
     </ListView.View> 
    </ListView> 
</StackPanel> 

回答

1

尤爾根,在MSDN論壇回答了這個問題對我來說。下面是他的回答:

嗨,

最後一個(填充)DockPanel中的孩子是一個StackPanel( 「ResultsPanel」)。 StackPanel的佈局永遠不會被包含控件定義(沒有任何工作像StackPanel的VerticalLayout =「Stretch」)。它將永遠需要它所包含的控件的空間來充分擴展。

由於您在該StackPanel(它有自己的滾動機制)中只有一個孩子,因此請移除StackPanel。

希望這會有所幫助。

Cheers Jürgen