c# - 检测从系统屏幕返回

标签 c# .net windows-phone-8 windows-phone-8.1

有时我的应用程序需要显示在可用网络列表中,这没问题:

private void ShowConnectionSettings()
{
    Debug.WriteLine("ShowConnectionSettings()");

    //Use the ConnectionSettingsTask to bring up the connection settings
    var connectionSettings = new ConnectionSettingsTask();

    // We are using the Connection Settings page for AirplaneMode.
    connectionSettings.ConnectionSettingsType = ConnectionSettingsType.WiFi;
    connectionSettings.Show();
}

但是我如何检测用户何时再次移除该屏幕?我需要一个 OnReturnFromSystemScreen 事件或类似事件。

我做了一些测试:

private void PhoneApplicationPage_GotFocus(object sender, RoutedEventArgs e)
{
   txtHeader.Text = DateTime.Now.ToLongTimeString();
}

private void PhoneApplicationPage_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
    txtHeader.Text = DateTime.Now.ToLongTimeString();
}

    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        txtHeader.Text = DateTime.Now.ToLongTimeString();

    }

但这还不够。所以任何想法都会有所帮助。

最佳答案

我认为没有从系统屏幕返回的事件,最接近的可能是使用 OnNavigatedTo并检查 NavigationEventArgs.NavigationMode对于值 Back ,它将指示您是否使用后退导航返回页面。然后还要检查 IsNavigationInitiator这表明导航是否在应用程序中启动。像这样:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.NavigationMode == NavigationMode.Back && e.IsNavigationInitiator == false)
    {
        txtHeader.Text = DateTime.Now.ToLongTimeString();
    }
}

另见 http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationmode(v=vs.95).aspx对于 NavigationMode 的所有值。

关于c# - 检测从系统屏幕返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26797856/

相关文章:

c# - 使用 C# Windows Phone 下载加密的二进制文件丢失数据

windows-8 - Windows Phone 8 和 Windows 8 平板电脑

c# - Windows Phone 8.1 MediaComposition - 拼接视频时音频速度过快

windows-phone-8 - 如何在 Windows 8.1 Phone 的子目录中包含 "content"文件?

c# - 保存更新模型后删除实体注释

c# - 如何在 .NET Core 3.0 Entity Framework 中执行组加入?

.net - Sync Framework 4的扩展能力如何?

c# - 如何从 Visual Studio C#.net 创建一个文本文件 (.txt) 与自动换行属性禁用?

c# - 在 Rx 中选择多个

c# - 从 Visual Studio Online Package Feed 而不是 Unlist 中删除 NuGet 包