有没有办法使用鼠标拖动/调整画布大小?

时间:2011-02-25 19:41:11

标签: wpf wpf-controls

我正在使用其中嵌入了Expander的画布,因此当扩展器展开时,它将覆盖下面的控件。

        <Canvas Grid.Row="0" Panel.ZIndex="99">
            <Border Width="450" BorderThickness="1">
                <Expander etc />
            </Border>
        </Canvas>
        <OtherControls Grid.Row="1"/> etc

有没有办法允许用户拖动它的尺寸而不是设置画布的大小?

1 个答案:

答案 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