在运行时调整窗口部件的大小

时间:2012-03-12 12:39:29

标签: wpf resize window

我希望主窗口分为三个部分,如图片中的那个。应该是矩形编号2的一条线(红色)或左边框,当用鼠标拖动它时,它会调整矩形1和2的大小。这就像windows media player中播放列表的行为一样。关于如何获得这个的任何想法?此外,如果有人提出解决方案,如果红线被拖到右边,这个播放列表会如何折叠,那就太棒了。

window in three parts

2 个答案:

答案 0 :(得分:3)

使用列和行定义<Grid>,如下所示:

<Grid>
    <Grid.RowDefinitions>
    <RowDefinition Height="300"/>
    <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="600"/>
    <ColumnDefinition Width="20"/>
    <ColumnDefinition Width="300"/>
    </Grid.ColumnDefinitions>
    ...

然后是网格分析器(仍在网格内):

    <GridSplitter Grid.Row="0" Grid.Column="1" ResizeDirection="Columns" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

请注意,gridsplitter需要它自己的列。

答案 1 :(得分:2)

这是一个GridSplitter,以下是如何使用一个:

<GridSplitter Grid.Row="1" 
              Height="5" 
              Width="Auto" 
              HorizontalAlignment="Stretch" 
              VerticalAlignment="Stretch" 
              Background="Gray" 
              ResizeDirection="Rows" />

您需要从Row为其分配ColumnGrid,并指定其ResizeDirection。这个是水平的,但你可以得到垂直的想法。

HTH,

巴布。