将 ViewBox 中的 WPF 画布与父网格对齐
本文关键字:网格 对齐 ViewBox 中的 WPF | 更新日期: 2023-09-27 17:56:19
我有一个一列的表格布局。顶部有一个画布,一个拆分器,然后是一个数据网格。我想将画布(在视图框中)限制在上部网格区域。如何防止画布只是在任何地方渲染,而只在"上部"网格中渲染?
<Grid VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="5*"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<Viewbox Stretch="Uniform"><Canvas x:Name="canvas" /></Viewvox>
<GridSplitter Grid.Column="0" Grid.Row="1" Height="5" ResizeDirection="Rows" VerticalAlignment="Center" HorizontalAlignment="Stretch"/>
<DataGrid x:Name="dataGrid" />
</Grid>
-
Canvases
必须始终与宽度/高度一起使用。您希望ViewBox
缩放画布,但它不知道画布有多大。 - 画布还应将
ClipToBounds
设置为true
。 - 如果您不知道 Canvas 应该有多大,因为内容可以放置在任何地方,那么您应该考虑使用其他面板。所有
Shape
类都可以放置在任何面板上。