Wpf 有没有办法用鼠标拖动/调整画布的大小?
我使用的画布中嵌入了一个扩展器,因此当扩展器展开时,它将覆盖下面的控件Wpf 有没有办法用鼠标拖动/调整画布的大小?,wpf,wpf-controls,Wpf,Wpf Controls,我使用的画布中嵌入了一个扩展器,因此当扩展器展开时,它将覆盖下面的控件 <Canvas Grid.Row="0" Panel.ZIndex="99"> <Border Width="450" BorderThickness="1"> <Expander etc /> </Border> </Canvas> &l
<Canvas Grid.Row="0" Panel.ZIndex="99">
<Border Width="450" BorderThickness="1">
<Expander etc />
</Border>
</Canvas>
<OtherControls Grid.Row="1"/> etc
等
有没有一种方法可以让用户拖动画布的大小而不是设置画布的大小?这里有一个想法:将所有内容都放到网格中。让网格自动调整大小,将画布放在网格中(确保它占据整个网格),使其符合父网格的大小:
<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年前写的,太长了,记不住细节,但代码编译并运行):
但您没有设置画布的大小。或者你的意思是“而不是设置边界的大小”?但是画布只有在需要显式大小时才有用——如果不想设置显式大小,就不应该使用画布。也许你应该详细说明为什么要使用画布。根据您所描述的,我看不出为什么画布与将多个控件放在同一个Grid.Row中相比对您有任何好处。@Joe White Canvas在以编程方式处理cooardinates时具有某些优势。假设我可以使用Canvas.GetTop(x),但我不能将其与网格一起使用。