我正在尝试获得类似于可调整边距的图像。图像本身实际上是一条路径,位于 StackPanel 中,垂直拉伸。StackPanel 的宽度可以调整,我想保持图像的比例和路径大小与边距的比例。
<StackPanel>
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.25*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.25*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.25*"/>
</Grid.ColumnDefintions>
<Path Grid.Row="1"
Grid.Column="1"
Data="...blabla..."
Fill="#FF0072C6"
Stretch="UniformToFill"/>
</Grid>
</StackPanel>
现在,问题是,即使路径对象被绘制在网格中,第一行和第三行的高度始终为零,而不是根据第二行的高度进行设置。我知道发生这种情况是因为 Grid 位于 StackPanel 中,它忽略了自动高度设置,甚至不让 Grid 垂直拉伸(或水平拉伸,具体取决于方向)。如果我为网格设置一个固定的高度,它确实有效,但是在调整大小时会破坏图像的纵横比。我怎样才能让它工作?
这就是我所拥有的:
这就是我要的:
编辑:
我的问题似乎有些混乱。因此,希望澄清一下,这是调整 StackPanel 大小后所需的结果:
如您所见,整个网格应该像实际图像一样调整大小。网格应保持其纵横比。这与网格内的路径无关。