как добавить полосу прокрутки в приложение магазина Windows?

#c# #xaml #windows-runtime #windows-store-apps #winrt-xaml

#c# #xaml #windows-среда выполнения #windows-store-приложения #winrt-xaml

Вопрос:

Я создаю приложение для магазина Windows; Как и в c #, мы использовали полосы прокрутки для перемещения вниз до конца страницы и просмотра всего содержимого, как мы можем сделать это для магазина Windows? Например, как упорядочить данные и использовать полосы прокрутки для перемещения вправо и просмотра всех данных?

Ответ №1:

Обычно вы не используете ScrollBar элементы управления напрямую, а скорее помещаете свой контент в a Panel (обычно Grid/StackPanel/Canvas ) и помещаете эту панель внутри a ScrollViewer . Убедитесь Horizontal/Vertical-Scroll-Mode/BarVisibility ZoomMode , что параметры и соответствуют направлению прокрутки, которое вы хотите поддерживать.

Преимущество использования ScrollViewer вместо ScrollBar заключается в том, что вы получаете плавное панорамирование с помощью касания, которое платформа обрабатывает за вас с помощью слоя прямых манипуляций, который не доступен вам в WinRT / XAML, а также обрабатывает все остальные входные данные стандартным способом.

Кроме того, если вы имеете дело со списком элементов, которые хотите прокручивать, особенно если список длинный, вы должны использовать какой ItemsControl -то подкласс — обычно вертикальный ListView для длинных, в основном текстовых списков содержимого или горизонтальный GridView для списков более богатых мультимедийных элементов. Преимущество их использования заключается в том, что они обрабатывают виртуализацию списков для вас — т. Е. Для списков из тысяч элементов вы получаете только несколько контейнеров элементов, созданных для элементов, которые в данный момент видны в окне просмотра элемента управления, и те, которые находятся рядом с портом просмотра, поэтому они готовы, когда вы переходите к ним.

Шаблоны этих элементов управления списком внутри уже имеют a ScrollViewer , а ScrollViewer's шаблон имеет ScrollBars внутри.

Комментарии:

1. Спасибо, Филип, если я сделаю это так, как Column = «0» VerticalScrollMode =»Включено» VerticalScrollBarVisibility =»Auto»> <Ориентация стековой панели = «Горизонтальная» HorizontalAlignment =»Center»> <изображение // ДОБАВЛЕНЫ НЕКОТОРЫЕ ИЗОБРАЖЕНИЯ С ОПРЕДЕЛЕННЫМ ИСТОЧНИКОМ> </StackPanel> </ScrollViewer> ОН ПО-ПРЕЖНЕМУ НЕ ПЕРЕМЕЩАЕТСЯ / не ПРОКРУЧИВАЕТСЯ, не могли бы вы сосредоточитьсяоб ошибке?

2. Ваш ScrollViewer настроен на вертикальную прокрутку, а ваш StackPanel расширяется по горизонтали. Вам нужно настроить их, чтобы сделать это одним способом.