奇怪的Gridsplitter调整行为

时间:2014-01-08 17:46:08

标签: c# .net xaml

得到了他的XAML:

<Window x:Class="correctionTests.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Menu Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" IsMainMenu="True">
            <MenuItem Header="_Ouvrir" Click="Open_Click"/>
        </Menu>
        <GroupBox Header="Tests : " VerticalAlignment="Top" Grid.Column="0" Grid.Row="1">
            <ListBox HorizontalAlignment="Left" VerticalAlignment="Top" x:Name="testList"/>
        </GroupBox>
        <GridSplitter HorizontalAlignment="Right"
                      VerticalAlignment="Stretch"
                      Grid.Column="1"
                      Grid.Row="1"
                      Width="5"
                      Background="#FFBCBCBC"/>
        <UserControl x:Name="userContent" Grid.Column="2" Grid.Row="1"/>
    </Grid>
</Window>

现在的问题是当我将网格切割器拉到右边时,列0上的控件的大小正在减小,另一方面,第0列的控件的大小正在增加,同时将网格切割器向左拉

我已在堆栈上找到此link,建议将第一列的宽度更改为自动。

问题是:如果我这样做,控件就不会再调整大小。

我怎样才能让我的控件获得所有宽度? (具有预期的网格划分器行为)?

1 个答案:

答案 0 :(得分:7)

由于您的GridSplitter位于单独的列上,您必须这样做 设置ResizeBehavior="PreviousAndNext"