<Window x:Class="DialogHost.ClosingConfirmation.CodeBehind.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<materialDesign:DialogHost> </materialDesign:DialogHost>
</Window>
    protected override async void OnClosing(CancelEventArgs e)
{
base.OnClosing(e); //If the user has elected to allow the close, simply let the closing event happen.
if (_AllowClose) return; //NB: Because we are making an async call we need to cancel the closing event
e.Cancel = true; //we are already showing the dialog, ignore
if (_ShowingDialog) return; TextBlock txt1 = new TextBlock();
txt1.HorizontalAlignment = HorizontalAlignment.Center;
txt1.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFF53B3B"));
txt1.Margin = new Thickness();
txt1.TextWrapping = TextWrapping.WrapWithOverflow;
txt1.FontSize = ;
txt1.Text = "您确认要退出系统吗?"; Button btn1 = new Button();
Style style = Application.Current.FindResource("MaterialDesignFlatButton") as Style;
btn1.Style = style;
btn1.Width = ;
btn1.Height = ;
btn1.Margin = new Thickness();
btn1.Command = MaterialDesignThemes.Wpf.DialogHost.CloseDialogCommand;
btn1.CommandParameter = true;
btn1.Content = "是"; Button btn2 = new Button();
Style style2 = Application.Current.FindResource("MaterialDesignFlatButton") as Style;
btn2.Style = style2;
btn2.Width = ;
btn2.Height = ;
btn2.Margin = new Thickness();
btn2.Command = MaterialDesignThemes.Wpf.DialogHost.CloseDialogCommand;
btn2.CommandParameter = false;
btn2.Content = "否"; DockPanel dck = new DockPanel();
dck.Children.Add(btn1);
dck.Children.Add(btn2); StackPanel stk = new StackPanel();
stk.Width = ;
stk.Children.Add(txt1);
stk.Children.Add(dck); //Set flag indicating that the dialog is being shown
_ShowingDialog = true;
object result = await MaterialDesignThemes.Wpf.DialogHost.Show(stk);
_ShowingDialog = false;
//The result returned will come form the button's CommandParameter.
//If the user clicked "Yes" set the _AllowClose flag, and re-trigger the window Close.
if (result is bool boolResult && boolResult)
{
_AllowClose = true;
Close();
}
}

源代码:https://github.com/Keboo/MaterialDesignInXaml.Examples/tree/master/DialogHost/DialogHost.ClosingConfirmation.CodeBehind

DialogHost 关闭对话框的更多相关文章

  1. 20151124001 关闭C#主窗体弹出是否关闭对话框

    关闭C#主窗体弹出是否关闭对话框 private void Frm_Main_FormClosing(object sender, FormClosingEventArgs e)        {   ...

  2. JQuery Dialog 禁用X按钮关闭对话框,-摘自网络

    JQuery Dialog 禁用X按钮关闭对话框,禁用ESC键关闭代码如下:$("#div1").dialog({   closeOnEscape: false,   open: ...

  3. 关闭C#主窗体弹出是否关闭对话框

    在开发系统时,常常有这样一个问题,就是当关闭主窗体,也即退出系统时,如果想提示是否关闭,以免误操作,可以在主窗体的Main_FormClosing事件中添加一个对话框,代码如下: private vo ...

  4. Android系统原理与源码分析(1):利用Java反射技术阻止通过按钮关闭对话框

    原文出处:博主宇宙的极客http://www.cnblogs.com/nokiaguy/archive/2010/07/27/1786482.html 众所周知,AlertDialog类用于显示对话框 ...

  5. mui 对话框 点击按钮不关闭对话框的办法

    目前版本的 mui.js 点击对话框的按钮只能关闭对话框 做如下修改 点击按钮后return false 即可

  6. Android——点击对话框上按钮不关闭对话框

    有时候我没可能需要在点击按钮进行一些检测,但是并不想关闭次对话框(系统默认点击任何一个按钮则关闭对话框),处理方法如下:在点击事件下添加如下代码: try { Field field = dialog ...

  7. vue + ElementUI 关闭对话框清空验证,清除form表单

    前面跟大家提到过 elementUI验证的问题,那么今天就来看看 点击对话框和关闭按钮 怎么清空验证,清空form表单,避免二次点击还会有 验证错误的提示 1.首先在你的对话框 取消按钮 加一个cli ...

  8. Android——点击对话框上button不关闭对话框

    有时候我没可能须要在点击button进行一些检測.可是并不想关闭次对话框(系统默认点击不论什么一个button则关闭对话框),处理方法例如以下:在点击事件下加入例如以下代码: try { Field  ...

  9. MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法

    http://blog.csdn.net/xgx198831/article/details/6713651 MFC对话框程序  屏蔽ESC和ENTER键关闭对话框的方法 或许还有其它更好的办法,但下 ...

随机推荐

  1. IOS UISwitch 控件

    转自:http://my.oschina.net/wolx/blog/396680 一 UISwitch 简介 二 UISwitch 创建 三设置选中状态 四 添加监听 五 测试代码 5.1 代码 5 ...

  2. [TimLinux] Django 中间件

    1. 定义 中间件是一个钩子框架,深入到django的请求/响应处理过程中.这是一个轻量.底层插件系统,目的是全局修改django的输入或输出.每一个中间件组件都是用来处理特定的功能.例如django ...

  3. UVA11324 The Lagest Lique(SCC缩点+DP)

    Given a directed graph G, con- sider the following transformation. First, create a new graph T(G) to ...

  4. Light oj 1140 How Many Zeroes?

    Jimmy writes down the decimal representations of all natural numbers between and including m and n, ...

  5. 强化学习环境OpenAi搭建,从虚拟机到Gym、Mujoco和mujoco-py的完整安装

    平时不怎么写博客,这次是因为环境的配置花费了我大概一个星期的时间.所以简单的记录一下搭建的整个过程,其中有些部分我直接推荐别人的博客的基本教程,都是我亲自尝试过成功的.同时,也希望这篇博客可以帮到您. ...

  6. git避免每次输入密码

    生成公匙 在仓库所在目录输入 ssh-keygen -t rsa -C "yourname@sina.com" 其中yourname@sina.com是注册邮箱.可以在%HOME% ...

  7. linux—ln

    1.  软连接:不可删除源文件,删除源文件导致链接文件找不到,出现红色闪烁. 2.  硬链接:  源文件删除后,链接文件可以正常打开,链接前后的文件inode号相同,硬链接只能针对文件做链接,,不能针 ...

  8. processing-python-泡泡龙

    挂一个无耻搬运工:码农教程. 真的打心底里瞧不起为了蹭热度全网照抄代码的某些人. 再次此声明:代码不是python语言,求某些搬运工不要到处搬运害人. def setup(): size(600,60 ...

  9. Spring boot 集成 阿里 Mqtt

    因为公司业务需求,需要接入 阿里Mqtt,自己基于Spring写了一个小demo,记录下来,已备以后需要. 第一步 创建一个实体bean用来装载 MqttClient private MqttClie ...

  10. Redis数据类型和操作

    <"Java技术员"成长手册>,包含框架.存储.搜索.优化.分布式等必备知识,都收集在GitHub JavaEgg ,N线互联网开发必备技能兵器谱,欢迎指导 Redis ...