none
如何手动关闭MessageDialog? RRS feed

答案

  • 你好。

    请问你指的“手动关闭”是什么意思? 想通过代码关闭MessageDialog吗?

    如果是想通过代码关闭的话,目前是没有办法实现的,需要用户点击去关闭。


    希望我的答案能帮助更多的人。

    2014年11月20日 8:49
    版主

全部回复

  • 你好。

    请问你指的“手动关闭”是什么意思? 想通过代码关闭MessageDialog吗?

    如果是想通过代码关闭的话,目前是没有办法实现的,需要用户点击去关闭。


    希望我的答案能帮助更多的人。

    2014年11月20日 8:49
    版主
  • Hi shao.meng

    代码是可以关闭MessageDialog,是通过拉起注册协议的方式。

    首先应用注册一个test协议:

    然后再代码中通过一个计时器不断去通过协议拉起自身:

    namespace App1
    {
        /// <summary>
        /// 可用于自身或导航至 Frame 内部的空白页。
        /// </summary>
        public sealed partial class MainPage : Page
        {
            public MainPage()
            {
                this.InitializeComponent();
            }
    
            DispatcherTimer timer;
    
            /// <summary>
            /// 在此页将要在 Frame 中显示时进行调用。
            /// </summary>
            /// <param name="e">描述如何访问此页的事件数据。Parameter
            /// 属性通常用于配置页。</param>
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                timer = new DispatcherTimer();
                timer.Interval = TimeSpan.FromSeconds(5);
                timer.Tick += timer_Tick;
            }
    
            private async void timer_Tick(object sender, object e)
            {
                await Windows.System.Launcher.LaunchUriAsync(new Uri("test:///"));
            }
    
            private async void Button_Click(object sender, RoutedEventArgs e)
            {
                timer.Start();
    
                await new MessageDialog("测试").ShowAsync();
            }
        }
    }

    这样就可以实现代码关闭MessageDialog了。


    • 已编辑 Andy_Li_ 2014年12月2日 3:36
    • 已建议为答案 Andy_Li_ 2014年12月2日 3:37
    2014年12月2日 3:35