使用Expander更改Border的大小

时间:2014-03-08 00:51:56

标签: c# wpf expander

之前可能已经提出这个问题,但我不确定如何搜索它,因为我没有找到明确的答案。

我是WPF新手(刚刚来自WinForms),我想使用Expander来显示和隐藏一些字段。扩展器扩展时,它下面的边框需要随之改变,以便为扩展器腾出空间。

缩回扩展器后,边框将恢复原始大小。

我是否必须以某种方式使用扩展器中的事件来说明扩展器现在正在扩展?

My example The Issue

从图片中可以看出这是不可取的。然而,这将是:

Desired result

1 个答案:

答案 0 :(得分:2)

这是一个非常简单的例子。我创建了一个有两行的网格。

第一个有你的扩展器,它的高度设置为Auto,因此它只需要占用所需的空间。

第二个有你的边界;它的高度为*,因此它需要尽可能多的空间。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Expander Content="hi" Header="bye" />
    <Border Grid.Row="1" BorderThickness="1" BorderBrush="Black" />
</Grid>

效果:

enter image description here