WPF - groupbox伸展不在水平堆栈面板中工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF - groupbox伸展不在水平堆栈面板中工作相关的知识,希望对你有一定的参考价值。

我有一个WPF应用程序,左侧显示一个选项卡控件,右侧显示一个工作区域(组框控件)。

我希望tab控件具有静态宽度,但groupbox将其宽度扩展到其容器的剩余部分(堆栈面板)。

这可能吗?设计师似乎并不允许。

<Window x:Class="app.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:app"
        mc:Ignorable="d"
        Title="myapp" Height="393.93" Width="530.761">
    <Grid>
        <StackPanel Margin="10" Orientation="Horizontal">
            <TabControl Width="119">
                <TabItem Header="Archive">
                    <Grid Background="#FFE5E5E5"/>
                </TabItem>
                <TabItem Header="Queue">
                    <Grid Background="#FFE5E5E5">
                        <ListView Width="113">
                            <ListView.View>
                                <GridView>
                                    <GridViewColumn/>
                                </GridView>
                            </ListView.View>
                        </ListView>
                    </Grid>
                </TabItem>
            </TabControl>
            <GroupBox Header="Page Editor:" Width="312" Margin="10,0"/>
        </StackPanel>
    </Grid>
</Window>
答案

不要使用StackPanel。使用拉伸其子元素的面板,例如Grid

<Grid Margin="10">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <TabControl Width="119">
        <TabItem Header="Archive">
            <Grid Background="#FFE5E5E5"/>
        </TabItem>
        <TabItem Header="Queue">
            <Grid Background="#FFE5E5E5">
                <ListView Width="113">
                    <ListView.View>
                        <GridView>
                            <GridViewColumn/>
                        </GridView>
                    </ListView.View>
                </ListView>
            </Grid>
        </TabItem>
    </TabControl>
    <GroupBox Header="Page Editor:" Margin="10,0" Grid.Column="1"/>
</Grid>

...并且不要为GroupBox设置明确的宽度。

以上是关于WPF - groupbox伸展不在水平堆栈面板中工作的主要内容,如果未能解决你的问题,请参考以下文章

WPF布局容器

WPF 边距厚度

WPF ListBox WPF XAML 内的顶部对齐

在 WPF 的堆栈面板中对齐左侧和右侧的控件

WPF 入门 《常用控件》

WPF的几种布局方式