我有一个针对Windows 10 Mobile的Windows 10 UWP应用程序,但我也在使用Microsoft Surface和我的鼠标进行测试。我根本无法让Manipulation工作来检测触摸事件。基本上,我想处理一个框架内的滑动(问题不是框架,也尝试了矩形作为测试,并且也没有工作)。当我运行应用程序并尝试用手指轻扫或使用鼠标时,我无法获取后面代码中的任何事件。尝试过多种设备以及多种方法。在大多数情况下,我正在关注我在SO和MSDN上阅读的所有内容,这使得它更令人沮丧。我在这里想念的是什么?
这是页面的XAML。在此示例中,我在XAML中显式设置事件处理程序。但是,我也尝试在控件后面的代码中创建它。都没有工作。
<!--<Rectangle Name="TouchArea" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4" ManipulationMode="All"/>-->
<Frame Name="MainPageFrame" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4" ManipulationMode="All" ManipulationStarted="MainPageFrame_OnManipulationStarted">
</Frame>
然后在代码中
private void MainPageFrame_OnManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
}
还试过这个:
public MainPage()
{
this.InitializeComponent();
MainPageFrame.ManipulationInertiaStarting += MainPageFrame_ManipulationInertiaStarting;
}
private void MainPageFrame_ManipulationInertiaStarting(object sender, ManipulationInertiaStartingRoutedEventArgs e)
{
if (e.Cumulative.Translation.X >= 300)
{
//Swipe Right
e.Handled = true;
}
if (e.Cumulative.Translation.X <= 300)
{
//Swipe Left
e.Handled = true;
}
}
最终我要做的就是检测用户在框架内滑动时,左右惯性,以便我可以更改Frame.Navigate。这与Pivot的工作方式类似,但我不能使用Pivot,所以我试图改为这样做。
谢谢!
答案 0 :(得分:1)
尝试为您或您正在跟踪操作的其他元素设置Background="Transparent"
。如果没有设置背景,则可能无法正确注册操作事件。