Динамическая высота прямоугольника

1

Я должен заполнить свое окно тремя регулируемыми Rectangles:

Изображение 174551

<Grid x:Name="FileDragAndDrop" Grid.Row="0" Grid.RowSpan="2" Background="Aqua">
     <Rectangle Fill="Beige" HorizontalAlignment="Stretch" Height="110" Stroke="Black" VerticalAlignment="Top" />
     <Rectangle Fill="Aquamarine" HorizontalAlignment="Stretch" Height="110" Stroke="Black" VerticalAlignment="Center" />
     <Rectangle Fill="BlanchedAlmond" HorizontalAlignment="Stretch" Height="110" Stroke="Black" VerticalAlignment="Bottom" />
</Grid>

Но приведенный выше код делает следующее:

Изображение 174551

Я попробовал Height="2*" (после ответа), но он дает ошибку

Строка '2 *' не может быть преобразована в длину

Как я могу устранить эту ошибку и сделать ее динамичной по высоте? Возможно ли это с помощью xaml или мне нужно сделать это на C#?

Теги:
xaml
wpf

1 ответ

1
Лучший ответ

Если вы не можете поместить прямоугольники в строки основной сетки, вы можете использовать вложенные Grid и Grid.RowSpan для покрытия вложенной сетки по всей основной сетке.

<Grid x:Name="FileDragAndDrop" Grid.Row="0" Grid.RowSpan="2" Background="Aqua">
  <Grid.RowDefinitions>
      <!-- suppose you have 3 RowDefinitions here -->
  </Grid.RowDefinitions>
  <Grid Grid.RowSpan="3">
     <Grid.RowDefinitions>
         <RowDefinition MinHeight="110"/>
         <RowDefinition MinHeight="110"/>
         <RowDefinition MinHeight="110"/>
     </Grid.RowDefinitions/>
     <Rectangle Fill="Beige" Stroke="Black"/>
     <Rectangle Fill="Aquamarine" Stroke="Black" Grid.Row="1"/>
     <Rectangle Fill="BlanchedAlmond" Stroke="Black" Grid.Row="2"/>
  </Grid>
</Grid>
  • 0
    Что ж ! там уже слишком много строк. Разве нет другого пути?
  • 0
    @ Shaharyar, так что вы хотите, чтобы 3 рита покрывали всю сетку?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню