wpf 窗口关闭前 弹出提示窗口

embedded/2024/10/19 14:32:51/
  1. 使用 Closing 事件
    • 在 WPF 中,可以处理窗口的Closing事件。当窗口即将关闭时,这个事件会被触发。在该事件处理程序中,可以显示一个提示窗口来询问用户是否真的要关闭窗口。
    • 以下是一个示例代码:

public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();this.Closing += MainWindow_Closing;}private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e){MessageBoxResult result = MessageBox.Show("您确定要关闭窗口吗?", "关闭提示", MessageBoxButton.YesNo);if (result == MessageBoxResult.No){e.Cancel = true;}}
}

  • 在上述代码中,当MainWindow即将关闭时,会弹出一个包含 “您确定要关闭窗口吗?” 消息的MessageBox。如果用户点击 “否” 按钮,通过设置e.Cancel = true来取消窗口的关闭操作;如果用户点击 “是” 按钮,则窗口正常关闭。

  1. 自定义提示窗口
    • 如果不想使用默认的MessageBox,可以创建一个自定义的提示窗口。
    • 首先创建一个新的 WPF 窗口(例如命名为ConfirmCloseWindow),在其中设计布局(如添加一个提示文本和 “是”“否” 按钮等)。
    • 然后在主窗口的Closing事件中使用自定义窗口:

public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();this.Closing += MainWindow_Closing;}private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e){ConfirmCloseWindow confirmWindow = new ConfirmCloseWindow();bool? result = confirmWindow.ShowDialog();if (result!= true){e.Cancel = true;}}
}

  • 在这个示例中,当主窗口即将关闭时,会创建并显示ConfirmCloseWindow。如果ConfirmCloseWindow关闭时返回的值不是true(例如用户点击了取消按钮或者直接关闭了提示窗口),则取消主窗口的关闭操作。

http://www.ppmy.cn/embedded/128757.html

相关文章

数据结构与算法--递归以及相关排序算法示例

直接上代码,闲话不多说 排序(递归,冒泡,插入排序) package com.zy;import java.util.Arrays;/*** @Author: zy* @Date: 2024-10-13-14:59* @Description: 冒泡排序*/ public class BubbleSort

rabbitMQ消息重复问题怎么解决的?

RabbitMQ 消息重复的问题通常发生在消息的传递过程中,特别是在网络异常、生产者或消费者宕机等场景下,消息可能被重复消费。这种重复是由于 RabbitMQ 的 "至少一次投递" 保证机制引起的。为了解决消息重复的问题,可以采取以下几种常…

AndroidStudio实验报告——实验一、二

实验一: AS安装与安卓环境搭建 实验目标和实验内容: 一、实验目标 掌握Android Studio的安装过程 搭建安卓开发环境 安装和配置Java Development Kit (JDK),理解JDK版本与Android Studio的兼容性。 安装Android SDK(S…

基于SpringBoot+Vue+uniapp微信小程序的教学质量评价系统的详细设计和实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

纯css实现文字超出自动滚动

<ul class"list"><li class"item marquee"><div class"marquee-wrap"><div class"marquee-content ">这个是非超长数据</div></div></li><li class"item marquee"><div…

谷歌-BERT-第四步:模型部署

1 需求 需求1&#xff1a;基于gradio实现大模型的WEB UI交互界面 2 接口 3 示例 import gradio as gr from transformers import *classifier pipeline("text-classification", model"./model", tokenizer"./model")gr.Interface.from_pipel…

如何在Android中进行日志打印和调试?

在Android开发中&#xff0c;日志打印和调试是开发者定位问题、优化性能和提升应用质量的重要手段。以下将详细阐述如何在Android中进行日志打印和调试&#xff0c;包括日志工具的使用、调试技巧以及实践中的最佳实践。 一、日志工具的使用 1. Log类 Android中的日志工具类是…

Vue.js 从入门到精通:全面解析组件化、路由与状态管理(附 Todo 案例)

在当今的前端开发领域&#xff0c;Vue.js 以其简洁、高效和灵活的特点受到了广泛的关注和应用。本文将带你从 Vue 的基础知识入手&#xff0c;逐步深入到高级特性&#xff0c;让你对 Vue 有一个全面的了解&#xff0c;并通过实际案例帮助你更好地掌握 Vue 的开发。 一、Vue 简…