Подгоните приложение Windows к размеру экрана, а не к статическому размеру

Я работаю над приложением для Windows, чтобы научиться делать их в целом, и одна проблема, с которой я постоянно сталкиваюсь, заключается в том, что когда я иду тестировать его, элементы управления занимают только часть экрана, потому что они размером, чтобы соответствовать меньшему экрану. Как я могу сделать их подходящими для всех экранов? Если мне нужно предоставить скриншоты, чтобы проиллюстрировать этот момент, я могу… используя формы, это было достигнуто с помощью стыковки, но приложения, похоже, не имеют такой возможности.


person VoidWhisperer    schedule 30.09.2014    source источник


Ответы (1)


Я предполагаю, что под «приложением Windows» вы подразумеваете приложение среды выполнения Windows, возможно, в Xaml.

Вы можете получить поведение, подобное док-станции, используя ссылку VerticalAlignment и HorizontalAlignment в ваших свойствах FrameworkElement (включая Элементы управления). Это позволяет принудительно перемещать элемент управления влево, вправо, вверх, вниз или растягивать, чтобы заполнить область, в которой он находится.

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

Для больших изменений (таких как переключение между портретным и альбомным соотношением сторон или поддержка узкого привязанного окна) вы можете использовать VisualStates либо для перемещения элементов управления, либо для переключения между различными наборами элементов управления. Если элементы управления привязаны к данным, то любой набор будет автоматически работать с базовыми данными.

В MSDN есть хорошая документация по этим концепциям в рекомендациях по поддержке нескольких размеров экрана и Краткое руководство: разработка приложений для различных размеры окна

person Rob Caplan - MSFT    schedule 01.10.2014