C#开发Windows UWP系列之对话框MessageDialog和ContentDialog

 更新时间:2022年06月27日 09:16:31   作者:天方  
这篇文章介绍了C#开发Windows UWP系列之对话框MessageDialog和ContentDialog,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

MessageDialog

在Metro程序中,没有传统的窗口,当我们要用需要交互的消息提示时,在Win8时代,引入了一个MessageDialog来取代常用的MessageBox。使用方法如下:

    private async void onButtonClick(object sender, RoutedEventArgs e)
    {
        var dialog = new MessageDialog("当前设置尚未保存,你确认要退出该页面吗?" ,"消息提示");

        dialog.Commands.Add(new UICommand("确定", cmd => { }, commandId: 0));
        dialog.Commands.Add(new UICommand("取消", cmd => { }, commandId: 1));

        //设置默认按钮,不设置的话默认的确认按钮是第一个按钮
        dialog.DefaultCommandIndex = 0;
        dialog.CancelCommandIndex = 1;

        //获取返回值
        var result = await dialog.ShowAsync();
    }

执行后效果如下:

MessageDialog并不复杂,它的窗口主体只能显示一个标题和消息体,可以自定义操作按钮和命令。基本上和MessageBox那样只能显示一些基本的消息提示。由于并没有集成常用的操作按钮,用起来比MessagBox显得还要麻烦一些。

ContentDialog

在Windows 10中,引入了一个新的对话框控件—ContentDialog(这个控件最初在Windows Phone 8中出现过)。它也可以完成常规的消息提示:

    private async void onButtonClick(object sender, RoutedEventArgs e)
    {
        var dialog = new ContentDialog()
        {
            Title = "消息提示",
            Content = "当前设置尚未保存,你确认要退出该页面吗?",
            PrimaryButtonText = "确定",
            SecondaryButtonText = "取消",
            FullSizeDesired = false,
        };

        dialog.PrimaryButtonClick += (_s, _e) => { };
        await dialog.ShowAsync();
    }

ContentDialog只有两个按钮,PrimaryButton和SecondaryButton。关联事件的方式有两种,一种是例子中的通过PrimaryButtonClick等事件关联,另一种则是设置PrimaryButtonCommand属性,传入一个ICommand对象。执行效果效果如下:

和MessageDialog的样式并不一样,另外,它还有一种全屏的样式,设置FullSizeDesired为true时,可以看到如下效果:

自定义ContentDialog

仅仅从前面的例子上来看,并看不出什么比MessageDialog更强的地方,但ContentDialog的强大之处在于,它的Content属性是一个object类型,是可以传入任意自定义控件的。一个简单的示例如下:

首先用Xaml自定义一个控件:

    <StackPanel>
        <TextBlock Text="当前设置尚未保存,你确认要退出该页面吗?" />
        <CheckBox Content="下次不再提示" />
    </StackPanel>

执行效果如下:

到此这篇关于UWP程序对话框MessageDialog和ContentDialog的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#中new操作符的工作机制

    C#中new操作符的工作机制

    这篇文章介绍了C#中new操作符的工作机制,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • .NET中的Timer类型用法详解

    .NET中的Timer类型用法详解

    这篇文章主要介绍了.NET中的Timer类型用法,较为详细的分析了Timer类型在各种环境下的用法,需要的朋友可以参考下
    2014-08-08
  • 浅聊一下C#中内存映射文件的玩法

    浅聊一下C#中内存映射文件的玩法

    内存映射文件是怎么玩的,说实话这东西理论我相信很多朋友都知道,就是将文件映射到进程的虚拟地址,说起来很容易,那如何让大家眼见为实呢,本文就来和大家简单聊聊
    2023-06-06
  • C# 创建MDB数据库、并存放表格数据的案例

    C# 创建MDB数据库、并存放表格数据的案例

    这篇文章主要介绍了C# 创建MDB数据库、并存放表格数据的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • http图片上传安全性问题 根据ContentType (MIME) 判断其实不准确、不安全

    http图片上传安全性问题 根据ContentType (MIME) 判断其实不准确、不安全

    图片上传常用的类型判断方法有这么几种---截取扩展名、获取文件ContentType (MIME) 、读取byte来判断(这个什么叫法来着?)。下面由脚本之家小编跟大家分享图片上传安全性问题,感兴趣的朋友一起看看吧
    2015-09-09
  • C#固定大小缓冲区及使用指针复制数据详解

    C#固定大小缓冲区及使用指针复制数据详解

    这篇文章主要为大家介绍了C#固定大小缓冲区及使用指针复制数据详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 用C#绘制九宫格形式的图片

    用C#绘制九宫格形式的图片

    大家好,本篇文章主要讲的是用C#绘制九宫格形式的图片,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • c# winform取消右上角关闭按钮的实现方法

    c# winform取消右上角关闭按钮的实现方法

    本文是对c#中winform取消右上角关闭按钮的实现方法进行了详细的介绍,需要的朋友可以过来参考下。希望对大家有所帮助
    2013-10-10
  • C#装饰者模式实例分析

    C#装饰者模式实例分析

    这篇文章主要介绍了C#装饰者模式,是C#中比较常见的设计模式,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C#调用Java代码的方法介绍

    C#调用Java代码的方法介绍

    这篇文章介绍了C#调用Java代码的方法,有需要的朋友可以参考一下
    2013-10-10

最新评论