Автоматическое изменение размера квадрата WPF до родительского контейнера

У меня есть объект UniformGrid в моем проекте WPF, который имеет 2 строки и 3 столбца, а его ширина и высота установлены на auto (с обоими выравниваниями, установленными на Stretch).

Эта сетка будет содержать 6 квадратов, которые я хочу заполнить как можно больше их ячейки и выровнять их по центру по горизонтали и вертикали.

Что мне нужно добавить, чтобы квадраты могли увеличивать / уменьшать свою длину / ширину в зависимости от динамического размера родительского элемента? Т.е. при изменении размера окна.

Вот мой xaml:

    <UniformGrid Rows="2" Columns="3">
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100"/>
    </UniformGrid>

Редактировать:

И Rectangle объекты должны оставаться квадратными.


person joe_coolish    schedule 30.12.2011    source источник


Ответы (3)


Вы могли сделать это:

<UniformGrid.Resources>
    <Style TargetType="Rectangle">
        <Setter Property="Width"
                Value="{Binding RelativeSource={RelativeSource Mode=Self},Path=ActualHeight}" />
    </Style>
</UniformGrid.Resources>

Или вы можете привязать высоту к ActualWidth.

К сожалению, это не поможет им максимально растянуть их.

person Emond Erno    schedule 30.12.2011

Если вы удалите свойства height и width, он сделает именно это.

person Wegged    schedule 30.12.2011

person    schedule
comment
Обратите внимание, что это приведет к МАСШТАБУ прямоугольника, а не к его размеру. - person Emond Erno; 30.12.2011