Я пытаюсь добавить поддержку портрета на страницу, содержащую GridView
которая использует VirtualizingStackPanel
в качестве GridView
ItemsPanelTemplate
. Идея заключается в том, что при изменении ориентации я смогу изменить свойство Orientation
для VirtualizingStackPanel
чтобы прокручивать вертикально по вертикали и по горизонтали в ландшафте. Однако, поскольку VirtualizingStackPanel
используется как шаблон, я не могу напрямую обращаться к нему по имени в коде позади.
Есть ли способ сделать то, что я хочу?
Я мог бы просто сделать дубликат GridView
(или использовать ListView
) и визуальные состояния, чтобы показать/скрыть их соответствующим образом, но я бы предпочел не дублировать так много кода.
Используйте VisualTreeHelper
для поиска в дереве GridView's
и найдите панель.
При изменении ориентации возникает какая-то ошибка.
var zoomedInStackpanel = itemGridView.ItemsPanelRoot as VirtualizingStackPanel;
zoomedInStackpanel.Orientation = Orientation.Vertical;
Я сдался и использовал два GridView. Один для каждой ориентации