Сделайте прямоугольник подходящим для сетки независимо от высоты / ширины - PullRequest
0 голосов
/ 04 апреля 2019

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

...