У меня есть 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
, и если оно превышает максимальное число, просто установите его на максимум, но это не лучший вариант.