Сохранение пропорций фигуры при изменении размеров экрана приложения

Столкнулся с такой проблемой. Мне нужно создать вот такую область в xaml, которая бы сохраняла свои пропорции при изменении размеров экрана приложения пример программы

Если использовать стандартные единицы измерения для Width и Height (max/min Width/Height) для фигуры Rectangle, то при изменении размеров экрана они могут выходить за пределы размеров экрана приложения или занимать больше/меньше места рабочей области, чем задумывалось. Чтобы исправить эту проблему я программно к окну добавил обработчик события: "this.SizeChanged += ReloadRectangle;", и с помощью алгоритмов при изменении размеров экрана высчитывал в процентах сколько должно занимать ширина и высота Rectangle.

Но из этого вытекают очевидные проблемы.

  1. Затраты времени на вычисление и создание такого алгоритма.
  2. Снижение производительности, т.к. при изменении размеров экрана приложения все алгоритмы высчитываются по новой.
  3. Нагромождение програмного кода (вместо разметки xaml)

И последнее. Я бы мог для этого использовать компановку Grid (к примеру), но в данном случае мне нужно, чтобы вся компановка происходила в контейнере Canvas. Не знаю, буду используется ли такой подход в реальных приложениях. Но я экспериментирую обучаясь:)

Есть ли решение данной проблемы? Спасибо заранее за ответ.


Ответы (0 шт):