使矩形适合网格,而与高度/宽度无关

时间:2019-04-04 17:33:57

标签: c# wpf xaml rectangles

我有一个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中的WidthViewModel,如果它超过了最大值,则只需将其设置为最大值,但这看起来并不像最好的选择。

0 个答案:

没有答案