我正在使用其中嵌入了Expander的画布,因此当扩展器展开时,它将覆盖下面的控件。
<Canvas Grid.Row="0" Panel.ZIndex="99">
<Border Width="450" BorderThickness="1">
<Expander etc />
</Border>
</Canvas>
<OtherControls Grid.Row="1"/> etc
有没有办法允许用户拖动它的尺寸而不是设置画布的大小?
答案 0 :(得分:0)
这是一个想法:把所有东西放在网格中。让网格自动调整大小,将画布放在网格中(确保它占用整个网格),使其符合父级的大小:
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Canvas Background="Transparent" Grid.RowSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<Border Width="450" BorderThickness="1">
<Expander etc />
</Border>
<OtherControls Grid.Row="1"/>
</Grid>
不确定这可能有多相关,但请查看此帖。也许它会给你一些想法(我在4年前写过,记住具体细节的时间太久了,但代码编译和运行):
http://denismorozov.blogspot.com/2008/01/how-to-resize-wpf-controls-at-runtime.html