将WPF ListBox停靠到窗口

时间:2016-12-15 11:16:27

标签: c# wpf xaml

我有一个WPF MainWindow.xaml,它包含一个网格,该网格有两个列表框如下:

<Window  blah blah >
<Grid>
    <Border Grid.Row="1" Grid.Column="0" BorderBrush="DarkGray" CornerRadius="2" BorderThickness="1" >
        <Grid Height="Auto" Width="Auto">
            <Grid.RowDefinitions>
                <RowDefinition Height="35"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>

            <Label Grid.Row="0" Grid.Column="0">ListBox 1</Label>
            <ListBox x:Name="lvTypes" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Visibility="Visible" Width="Auto"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="150" Background="#FFFFFFFF">
            </ListBox>

            <GridSplitter Grid.Column="0" Grid.RowSpan="2" Width="5"></GridSplitter>

            <Label Grid.Row="0" Grid.Column="1">ListBox 2</Label>
            <ListBox x:Name="lvObjects" Grid.Column="1" Grid.Row="1" Width="Auto" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="150">
            </ListBox>
        </Grid>
    </Border>
</Grid>
</Window>

看起来如下:

enter image description here

如何让网格的右侧停靠在屏幕的右侧,并且窗口中的两个列表框相同?

1 个答案:

答案 0 :(得分:1)

将列宽设置为*而不是Auto。

您的边框设置Grid.RowGrid.Column属性。这些对您没有任何帮助,因为外部Grid只有一个(默认)行和同上列。事实上,你根本不需要外Grid;您可以将Border作为Window内容。

另外考虑改变这个:

<RowDefinition Height="35"/>

到此:

<RowDefinition Height="Auto"/>