#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
расширяется по горизонтали. Вам нужно настроить их, чтобы сделать это одним способом.