1

私は次のレイアウトを持っています

<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 を追加すると、すべてが引き伸ばされてすべての行と列が表示されます。

編集:より明確に

TabItem を埋めるために、DataGrid を垂直方向および水平方向に伸ばしたいと考えています。もっとスペースが必要な場合は、DataGrid のスクロールバーを表示したいと思います。

4

3 に答える 3

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更新されません。今のところは十分です。

于 2012-10-18T15:41:50.147 に答える
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、または両方を必要な方法でストレッチします)

于 2012-10-18T14:24:09.157 に答える