我有一个Grid
,其中包含一个Rectangle
:
<Grid Background="LightBlue">
<Rectangle Stretch="UniformToFill" VerticalAlignment="Center" HorizontalAlignment="Center" Height="{Binding Height}" Width="{Binding Width}" Stroke="Red">
<Rectangle.LayoutTransform>
<RotateTransform Angle="{Binding Heading}" />
</Rectangle.LayoutTransform>
</Rectangle>
</Grid>
所有绑定都绑定到我的视图模型中的属性,并且可以正常工作。但是,当我输入大的Height
和/或Width
时,看不见Rectangle
,因为它大于其中包含的Grid
。
在此处查看有关Stretch
属性的信息:https://docs.microsoft.com/en-us/dotnet/framework/wpf/graphics-multimedia/shapes-and-basic-drawing-in-wpf-overview-它表示
UniformToFill:Shape对象的内容被完全拉伸 在保留其原始长宽比的同时填充其布局空间
也许我理解错了,但这不应该确保Rectangle
始终适合其父容器吗?
基本上,我的目标是使Rectangle
具有任意大的高度或宽度,同时只要比例相同,就仍停留在Grid
中。
我有一个解决方案,可以检查Height
中的Width
和ViewModel
,如果它超过了最大值,则只需将其设置为最大值,但这看起来并不像最好的选择。