示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
 public PhonePageParameter(IPhonePage p_content, TaskCompletionSource <bool> p_taskSource)
 {
     Content    = p_content;
     TaskSource = p_taskSource;
 }