mak_ufo
@mak_ufo

Как растянуть элемент canvas на всю оставшуюся ширину?

Всем привет. Пишу десктопное приложение для Windows на WPF. Вёрстка примерно такая:
<StackPanel Orientation="Horizontal">
    <StackPanel Orientation="Vertical">
    </StackPanel>

     <Canvas RenderTransformOrigin="0.5, 0.5">
         <Canvas.RenderTransform>
              <ScaleTransform ScaleY="-1" />
         </Canvas.RenderTransform>
     </Canvas>
</StackPanel>


Хотелось бы, чтобы Canvas занял всё оставшееся доступное место по ширине и высоте. Как это реализовать?
Как я понял, он автоматически занимает всё оставшееся место по высоте, если указать ширину.

Ссылка на код вёрстки

Ссылка на гифку, где показано, как ведёт себя элемент при указанной ширине, но не указанной высоте. Такого же эффекта хотелось бы при горизонтальном изменении размера
  • Вопрос задан
  • 547 просмотров
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C#
Превратите горизонтально-ориентированный StackPanel, т.е. тот, в котором у вас канвас, в DockPanel (тэг Orientation нужно будет убрать). Тогда ваш канвас, как последний из потомков, займёт всю оставшуюся доступную площадь (поведение по умолчанию). Плюс, это будет логично - ведь у вас управляющие контролы должны быть задоканы слева, поэтому логичнее использовать DockPanel.

С Новым Годом!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы