有时我的应用程序需要显示在可用网络列表中,这没问题:
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/