WPF GridSplitter TabHeader定位

问题描述 投票:0回答:1

我的应用程序中有以下网格结构:

Click here to see the structure

  • 3排/ 3列: 第0行第0列:带有3个TabItem的TabControl 第1行第0列:GridSplitter 第2行第0列:带有3个TabItem的TabControl 第0行Col 1:Gridsplitter 第1行第1行: - 第2行第1行:GridSplitter 第0行第2列:AnyControls 第1行第2列:GridSplitter 第2行第2栏:AnyControls

我希望2个TabHeader组在水平GridSplitter上方并排排列...

任何想法?我不知何故被困在这里......

c# wpf xaml grid tabcontrol
1个回答
1
投票

将下方选项卡的上边距设置为负数,使其在网格中的位置上方延伸。将GridSplitter置于其下方,将其设置为调整行的大小并水平拉伸(我使用蓝色背景使其可见)。

See image here

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition></ColumnDefinition>
        <ColumnDefinition Width="10"></ColumnDefinition>
        <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition></RowDefinition>
        <RowDefinition Height="10"></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>

    <!-- Set the GridSplitter's ResizeDirection to Rows, and its HorizontalAlignment to Stretch -->
    <GridSplitter Grid.Row="1" Grid.Column="0" Height="2" ResizeDirection="Rows" HorizontalAlignment="Stretch" Background="Blue"></GridSplitter>

    <!-- Place the upper TabControl's tabs on the bottom and aligned to the right. -->
    <TabControl Grid.Column="0" Grid.Row="0" TabStripPlacement="Bottom">
        <TabControl.Resources>
            <Style TargetType="TabPanel">
                <Setter Property="HorizontalAlignment" Value="Right"/>
            </Style>
        </TabControl.Resources>
        <TabItem Header="Item 1"></TabItem>
        <TabItem Header="Item 2"></TabItem>
        <TabItem Header="Item 3"></TabItem>
    </TabControl>    

    <!-- Set the lower TabControl's top margin to -30 to extend up out of its location in the grid. -->
    <TabControl Grid.Column="0" Grid.Row="2" Margin="0, -30, 0, 0">
        <TabItem Header="Item 1"></TabItem>
        <TabItem Header="Item 2"></TabItem>
        <TabItem Header="Item 3"></TabItem>
    </TabControl>


</Grid>
© www.soinside.com 2019 - 2024. All rights reserved.