选项卡项的宽度相同

本文关键字:选项 | 更新日期: 2023-09-27 18:24:58

我找了这个并找到了答案,但没有一个对我有效。我有选项卡控件和其中的两个项。我希望Item1的宽度与Item2的宽度相同。我正在使用SharedSizeGroup,但只有在选择Item2之后,宽度才会设置为Item1。有人能帮我吗?代码隐藏不是我的选择。

<Window x:Class="tabitem_sharedsize.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" SizeToContent="WidthAndHeight">
<Grid>
    <TabControl TabStripPlacement="Top" Grid.IsSharedSizeScope="True" >
        <TabItem Header="Item1">
            <Grid >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="col_group"/>
                </Grid.ColumnDefinitions>
                <!-- Object Descritions -->
                <GroupBox Margin="5,5,5,5" Grid.Column="0">
                    <GroupBox.Header>
                        Object description
                    </GroupBox.Header>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="150" />
                            <ColumnDefinition Width="250" />
                        </Grid.ColumnDefinitions>
                        <!-- Name -->
                        <Label Grid.Column="0" Grid.Row="0" Content="Name:" />
                        <TextBox  Grid.Column="1" Grid.Row="0" />
                        </Grid>
                </GroupBox>
            </Grid>
        </TabItem>
        <TabItem Header="Item2">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="col_group"/>
                </Grid.ColumnDefinitions>
                <Grid Grid.Column="0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <!-- Inputs -->
                    <GroupBox Grid.Column="0" Margin="5,5,5,5">
                        <GroupBox.Header>
                            Inputs
                        </GroupBox.Header>
                        <Grid>
                            <ListView Grid.Row="1" Margin="10,0,0,5">
                                <ListView.View>
                                    <GridView >
                                        <GridViewColumn Header="A" Width="250"/>
                                        <GridViewColumn Header="B" Width="250"/>
                                    </GridView>
                                </ListView.View>
                            </ListView>
                        </Grid>
                    </GroupBox>
                </Grid>
            </Grid>
        </TabItem>
    </TabControl>
</Grid>

选项卡项的宽度相同

您只需将第一个选项卡的大小设置为与第二个选项卡的尺寸相同。

<TabItem Header="Item1">
                <Grid >
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition SharedSizeGroup="col_group" Width="400"/>
                    </Grid.ColumnDefinitions>
                 </Grid>
            </TabItem>

在第二个选项卡中,将两列的宽度分别设置为150和250。

由于第二个选项卡中有两列,但第一个选项卡中只有一列,因此我们将其宽度设置为400。