全屏模式下的边缘操纵检测在UWP应用程序中无法正常工作

时间:2016-03-07 03:02:55

标签: winrt-xaml win-universal-app

我有一种情况,当应用程序处于全屏模式时,从屏幕外发出的操作事件(想象表面专业版的边框)没有被注册。但是,当应用程序最大化时,它们会按预期注册" (我把它放在引号中,因为我知道它不再是正式的"最大化的事情)。

要重现,请创建空白应用程序并在此帖子末尾添加代码。

从上到下滑动,并注意到没有任何操纵事件被触发。现在单击退出全屏按钮,然后单击最大化按钮并重复实验,您将看到操作事件现在正确触发。

开始在屏幕外拖动非常重要。

这是设计的吗?有没有我不知道的问题?这是一个错误吗?

以下Xaml文件:

<Page
x:Class="EdgeSwipeDetect.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:EdgeSwipeDetect"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid Background="Green"
      ManipulationMode="TranslateInertia,TranslateY"
      ManipulationStarted="Grid_ManipulationStarted"
      ManipulationCompleted="Grid_ManipulationCompleted"
      ManipulationDelta="Grid_ManipulationDelta" />

</Page>

代码背后:

    public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();

        CoreApplicationViewTitleBar coreTitleBar = CoreApplication.GetCurrentView().TitleBar;
        coreTitleBar.ExtendViewIntoTitleBar = true;

        var appView = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
        appView.TryEnterFullScreenMode();
    }

    private void Grid_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
    {
        Debug.WriteLine("ManipulationStarted");
    }

    private void Grid_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
    {
        Debug.WriteLine("ManipulationCompleted");
    }

    private void Grid_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
    {
        Debug.WriteLine("ManipulationDelta");
    }
}

0 个答案:

没有答案