2012-10-18 48 views
1

我有以下佈局我如何獲得一個DataGrid填充的TabItem

<DockPanel> 
    <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10"> 
     ... 
    </StackPanel> 
    <TabControl> 
     <TabItem Header="Summary"> 
      <DataGrid ItemsSource="{Binding SummaryData}" 
         CanUserAddRows="False" 
         CanUserDeleteRows="False" 
         IsReadOnly="True" 
         HeadersVisibility="Column" 
         CanUserSortColumns="False" /> 
     </TabItem> 
     ... 
    </TabControl> 
</DockPanel> 

沒有在DataGrid中,TabControl的和的TabItems填充容器的剩餘完美,但是當我添加的DataGrid它延伸的一切出來顯示所有的行和列。

編輯:更清晰

我期待有DataGrid的拉伸veritcally和水平,填補了TabItem的。如果它需要更多空間,我想讓DataGrid的滾動條出現。

+0

你想拉伸/不完全拉伸? – Sisyphe

+0

哦,對不起。我試圖讓DataGrid伸展來填充TabItem而不擴展TabItem。 –

+0

水平伸展權? – Sisyphe

回答

1

我得到以下內容以完成我想要的操作。

<TabItem Header="Summary" > 
    <Grid x:Name="SummaryGrid"> 
     <DataGrid Height="{Binding ElementName=SummaryGrid, Path=ActualHeight}" 
        ItemsSource="{Binding SummaryData}" 
        CanUserAddRows="False" 
        CanUserDeleteRows="False" 
        IsReadOnly="True" 
        HeadersVisibility="Column" 
        CanUserSortColumns="False" /> 
    </Grid> 
</TabItem> 

它的工作原理,直到我改變父面板的大小。 ActualHeight未更新。儘管如此,現在已經夠好了。

0

您正在尋找哪種行爲?

<DockPanel> 
    <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10"> 
     <TextBox Text="tttt" /> 
    </StackPanel> 
    <TabControl VerticalAlignment="Top" HorizontalAlignment="Left"> 
     <TabItem Header="Summary"> 
      <DataGrid CanUserAddRows="False" 
         CanUserDeleteRows="False" 
         IsReadOnly="True" 
         HeadersVisibility="Column" 
         CanUserSortColumns="False"> 
       <DataGrid.Columns> 
        <DataGridTextColumn Header="Column 1" Binding="{Binding}"></DataGridTextColumn> 
       </DataGrid.Columns> 
       <sys:String>Entry</sys:String> 
      </DataGrid> 
     </TabItem> 
    </TabControl> 
</DockPanel> 

通過設置這些對齊,您將使DataGrid伸展到TabItem中的可用空間。但我不確定這就是你正在尋找的東西。

你可以玩VerticalAlignmentHorizo​​ntalAlignment準確地得到你需要的東西。 (將其設置爲Top/Left/Stretch以獲得TabItem或DataGrid,或者兩者都以您想要的方式拉伸)

相關問題