2016-02-26 52 views
0

Im努力從上到下定位GroupBox,DataGrid和Menu。 所以對於第一種方法我用的StackPanel(僞XAML代碼):如何定位GroupBox,DataGrid和Menu

<StackPanel> 
    <GroupBox/> 
    <DataGrid/> 
    <Menu/> 
</StackPanel> 

的問題是,我想在DataGrid來填充組框和菜單之間的空間的其餘部分,它使顯示這樣的: enter image description here

我嘗試使用DockPanel中:

<DockPanel> 
    <GroupBox DockPanel.Dock = "Top"/> 
    <DataGrid/> 
    <Menu DockPanel.Dock = "Bottom"/> 
</DockPanel> 

它橫跨在DataGrid很好,但菜單位置不正確 enter image description here

此外,在這種情況下,DataGrid的編譯
enter image description here

坍塌後我應該怎麼做,所以元素正常顯示?

回答

1

這將工作 - 真的不能給你一個正確的答案,爲什麼它是這樣工作的,但它是與哪個組件獲得創建第一時,你正在使用的對接。因此,通過將菜單放置在數據網格上方,您的dockpanel按照您所描述的方式工作。

請別人糾正我,如果我錯了。自己仍然在學習這個。

<DockPanel> 
    <GroupBox Header="Filter" DockPanel.Dock="Top"> 
     <StackPanel Orientation="Horizontal"> 
     <Label Content="Label 1" /> 
     <Label Content="Label 2" /> 
     </StackPanel> 
    </GroupBox> 
    <Menu DockPanel.Dock="Bottom"> 
     <MenuItem Header="Menu 1"> 

     </MenuItem> 
     <MenuItem Header="Menu 2"> 

     </MenuItem> 
    </Menu> 
    <DataGrid> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Header1" Width="*" /> 
      <DataGridTextColumn Header="Header2" Width="*" /> 
      <DataGridTextColumn Header="Header3" Width="*" /> 
      <DataGridTextColumn Header="Header4" Width="*" /> 
     </DataGrid.Columns> 
    </DataGrid> 
</DockPanel> 

enter image description here

希望這有助於。

+0

不...還是同樣的問題。 Datagrid不想填充空間..在設計器中看起來沒問題,但運行應用程序後它仍然崩潰。 – SebOlens

+0

它適用於我,可以有任何其他容器/面板處理你的控件拉伸? 如果您可以提供一些代碼,可以更容易地查看您遇到的問題。 我的exampel只是在一個300的高度和300的高度的窗口。 –

+0

是的,它的作品謝謝:)問題是,我有一個'TabControl'高於那些'Horizo​​ntalAlignment'和'VerticalAlignment'沒有設置爲'Stretch' – SebOlens

1
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="auto" /> 
    </Grid.RowDefinitions> 

    <GroupBox Grid.Row="0" /> 
    <DataGrid Grid.Row="1" /> 
    <Menu Grid.Row="2" /> 
</Grid> 
+0

感謝您的快速回復 – SebOlens

+0

但仍然DataGrid不填充剩餘的空間 – SebOlens

+0

它填滿了整個空間,但沒有DataGrid控件的數據,所以你期望它顯示什麼? – OpenMinded