В моем приложении UWP Xbox у меня есть страница, где содержимое находится в ScrollViewer и позволяет пользователю прокручивать содержимое в любом направлении с помощью левой кнопки. Я бы хотел, чтобы курсор указателя был включен для этой страницы, чтобы его можно было использовать для перемещения по области прокрутки и элементам щелчка.Ушли прокрутка указателя мыши/указателя мыши ScrollViewer в приложении UWP Xbox
Это по сути то же поведение, что и браузер Edge при прокрутке вниз страницы ... когда указатель попадает на край содержимого, происходит прокрутка.
У меня есть пример страницы, которая выглядит следующим образом:
<Page
x:Class="MyApp.MyPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ScrollViewer x:Name="RootScrollViewer" IsTabStop="True" ZoomMode="Enabled" HorizontalScrollMode="Enabled" HorizontalScrollBarVisibility="Visible" VerticalScrollMode="Enabled" VerticalScrollBarVisibility="Visible" >
<Grid x:Name="TheGrid" Width="1400" Height="1400" Margin="{StaticResource DefaultAllMargin}">
<Rectangle Width="315" Height="200" VerticalAlignment="Top" HorizontalAlignment="Left" Fill="Green"/>
<Rectangle Width="315" Height="200" VerticalAlignment="Bottom" HorizontalAlignment="Left" Fill="Blue"/>
<Rectangle Width="315" Height="200" VerticalAlignment="Center" HorizontalAlignment="Center" Fill="Blue"/>
<Rectangle Width="315" Height="200" VerticalAlignment="Bottom" HorizontalAlignment="Right" Fill="Blue"/>
<Rectangle Width="315" Height="200" VerticalAlignment="Top" HorizontalAlignment="Right" Fill="Blue"/>
</Grid>
</ScrollViewer>
</Grid>
Если я загрузить эту страницу, как она есть, левая ручка позволяет мне прокрутки ScrollViewer в любом направлении, который близок к тому, что я хочу. Однако, если я добавлю приведенный ниже код в свой конструктор страницы, чтобы включить указатель, я получаю указатель, но теперь левая кнопка просто перемещает указатель внутри страницы, но не прокручивает ScrollViewer.
this.RequiresPointer = RequiresPointer.WhenFocused;
Кто-нибудь знает, как я могу выполнить указатель и прокрутку?
Обновление: Я создал несколько тестовых приложений, используя ScrollViewer, а также WebView, чтобы сравнить, как ведет себя одна мышь. То, как работает готовый WebView, как я хочу. Я хочу, чтобы левая кнопка управляла указателем и правой палкой для управления прокруткой. Поэтому мой вопрос заключается в следующем: существует ли способ заставить собственный контент XAML внутри ScrollViewer вести себя так, как это делает веб-контент внутри WebView?
В моем случае, если я установил RootScrollViewer.RequiresPointer = RequiresPointer.WhenFocused для моего ScrollViewer, я не получаю указатель. Я попытался вызвать .Focus (...) на ScrollViewer при загрузке страницы, но я все еще не получаю указатель на ScrollViewer. Если я установил .RequiresPointer = RequiresPointer.WhenFocused на странице, тогда я получаю указатель, но средство просмотра прокрутки не прокручивается с помощью кнопки ... с или без вызова .Focus() в ScrollViewer при загрузке – Scott