/// <summary> /// 加载页面内容,导航到新页 /// </summary> /// <param name="p_content">页面内容</param> public static void Show(IPhonePage p_content) { if (p_content == null || !(p_content is FrameworkElement)) { throw new Exception("PhonePage内容不是可视元素!"); } // 避免自己导航到自己的情况 if (SysVisual.RootFrame.Content is PhonePage page && page.Content == p_content) { return; } _newParam = new PhonePageParameter(p_content, null); SysVisual.RootFrame.Navigate(typeof(PhonePage), _newParam); }
/// <summary> /// 加载页面内容,导航到新页,可异步等待到关闭 /// </summary> /// <param name="p_content">页面内容</param> public static Task ShowAsync(IPhonePage p_content) { if (p_content == null || !(p_content is FrameworkElement)) { throw new Exception("PhonePage内容不是可视元素!"); } // 避免自己导航到自己的情况 if (SysVisual.RootFrame.Content is PhonePage page && page.Content == p_content) { return(Task.CompletedTask); } var taskSrc = new TaskCompletionSource <bool>(); _newParam = new PhonePageParameter(p_content, taskSrc); SysVisual.RootFrame.Navigate(typeof(PhonePage), _newParam); return(taskSrc.Task); }
public PhonePageParameter(IPhonePage p_content, TaskCompletionSource <bool> p_taskSource) { Content = p_content; TaskSource = p_taskSource; }