在我的UWP Xbox应用程序中,我希望有一个页面,其内容位于ScrollViewer中,并允许用户使用左侧滚动条向任意方向滚动内容。我想为此页面启用指针游标,以便它可以用于移动滚动区域并单击元素。在UWP Xbox应用程序中留有游标/鼠标指针滚动滚动查看器
这与浏览器在向下滚动页面时显示的行为基本相同......当指针到达内容的边缘时,会发生滚动。
我有一个示例页面看起来像这样:
<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的行为方式与我想要的完全一样。我想让左边的控制杆控制指针,右边的控制杆控制滚动。所以我的问题是:有没有办法让ScrollViewer内部的本机XAML内容像Web内容一样在WebView中运行?
在我的情况下,如果我为我的ScrollViewer设置了RootScrollViewer.RequiresPointer = RequiresPointer.WhenFocused,我没有得到指针。我曾尝试在页面加载时在ScrollViewer上调用.Focus(...),但我仍然没有在ScrollViewer上获得指针。如果我设置.RequiresPointer = RequiresPointer.When专注于页面上,然后我得到的指针,但滚动查看器不滚动任何棍子....有或没有调用加载ScrollViewer上的.Focus() – Scott