WPF 全屏显示实现(无标题栏按钮 + 自定义退出按钮)

WPF 全屏显示实现(无标题栏按钮 + 自定义退出按钮)

完整实现代码

MainWindow.xaml

<Window x:Class="FullScreenApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="全屏应用" WindowState="Maximized" WindowStyle="None"ResizeMode="NoResize" Background="Black"><Grid><!-- 主内容区域 --><TextBlock Text="全屏应用演示" HorizontalAlignment="Center" VerticalAlignment="Center"Foreground="White" FontSize="36"/><!-- 自定义退出按钮 --><Button x:Name="ExitButton" Content="退出程序" Width="100" Height="40"HorizontalAlignment="Right" VerticalAlignment="Bottom"Margin="20"Click="ExitButton_Click"/></Grid>
</Window>

MainWindow.xaml.cs

using System.Windows;namespace FullScreenApp
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();// 确保窗口全屏this.WindowState = WindowState.Maximized;this.WindowStyle = WindowStyle.None;// 可选:防止其他窗口覆盖this.Topmost = true;}private void ExitButton_Click(object sender, RoutedEventArgs e){// 退出应用程序Application.Current.Shutdown();}// 可选:响应ESC键退出protected override void OnKeyDown(KeyEventArgs e){if (e.Key == Key.Escape){Application.Current.Shutdown();}base.OnKeyDown(e);}}
}

进阶功能

1. 添加淡入淡出动画效果

<Window.Resources><Storyboard x:Key="FadeOut"><DoubleAnimation Storyboard.TargetProperty="Opacity"From="1" To="0" Duration="0:0:0.3"/></Storyboard>
</Window.Resources>

然后在退出按钮点击事件中:

private async void ExitButton_Click(object sender, RoutedEventArgs e)
{var storyboard = (Storyboard)FindResource("FadeOut");storyboard.Begin(this);await Task.Delay(300); // 等待动画完成Application.Current.Shutdown();
}

2. 防止误操作退出(添加确认对话框)

private void ExitButton_Click(object sender, RoutedEventArgs e)
{var result = MessageBox.Show("确定要退出程序吗?", "确认退出", MessageBoxButton.YesNo, MessageBoxImage.Question);if (result == MessageBoxResult.Yes){Application.Current.Shutdown();}
}

3. 多显示器支持(在主显示器全屏)

public MainWindow()
{InitializeComponent();// 获取主显示器信息var screen = System.Windows.Forms.Screen.PrimaryScreen;// 设置窗口位置和大小this.Left = screen.Bounds.Left;this.Top = screen.Bounds.Top;this.Width = screen.Bounds.Width;this.Height = screen.Bounds.Height;this.WindowStyle = WindowStyle.None;this.WindowState = WindowState.Normal; // 必须设置为Normal才能自定义大小
}

注意事项

  1. 窗口样式WindowStyle="None" 会移除所有窗口装饰,包括标题栏和边框
  2. 调整大小ResizeMode="NoResize" 防止用户调整窗口大小
  3. 任务栏:全屏窗口默认会覆盖任务栏,如需显示任务栏,请调整窗口大小
  4. 快捷键:添加ESC键退出功能可以提升用户体验
  5. 性能:全屏应用通常需要优化渲染性能,特别是包含动画或视频时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/907343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqli_labs第二十九/三十/三十一关——hpp注入

一&#xff1a;HTTP参数污染&#xff1a; hpp&#xff08;http parameter pollution)注入中&#xff0c;可以通过在hppt的请求中注入多个同名参数来绕过安全过滤 原理&#xff1a;php默认只取最后一个同名参数 比如在这一关里&#xff0c;可能对第一个id参数进行消毒处理&a…

【STM32】按键控制LED 光敏传感器控制蜂鸣器

&#x1f50e;【博主简介】&#x1f50e; &#x1f3c5;CSDN博客专家 &#x1f3c5;2021年博客之星物联网与嵌入式开发TOP5 &#x1f3c5;2022年博客之星物联网与嵌入式开发TOP4 &#x1f3c5;2021年2022年C站百大博主 &#x1f3c5;华为云开发…

华为OD机试真题——斗地主之顺子(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 B卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

Qt找不到windows API报错:error: LNK2019: 无法解析的外部符号 __imp_OpenClipboard

笔者在开发中出现的bug完整报错如下&#xff1a; spcm_ostools_win.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_OpenClipboard&#xff0c;函数 "void __cdecl spcmdrv::vCopyToClipboard(char const *,unsigned __int64)" (?vCopyToClipboardspcmdrvYAXPE…

4.8.4 利用Spark SQL实现分组排行榜

在本次实战中&#xff0c;我们的目标是利用Spark SQL实现分组排行榜&#xff0c;特别是计算每个学生分数最高的前3个成绩。任务的原始数据由一组学生成绩组成&#xff0c;每个学生可能有多个成绩记录。我们首先将这些数据读入Spark DataFrame&#xff0c;然后按学生姓名分组&am…

[PyMySQL]

掌握pymysql对数据库实现增删改查数据库工具类封装,数据库操作应用场景数据库操作应用场景 校验测试数据 : 删除员工 :构造测试数据 : 测试数据使用一次就失效,不能重复使用 : 添加员工(is_delete)测试数据在展开测试前无法确定是否存在 : 查询,修改,删除员工操作步骤:!~~~~~~~…

cs224w课程学习笔记-第12课

cs224w课程学习笔记-第12课 知识图谱问答 前言一、问答类型分类二、路径查询(Path queries)2.1 直观查询方法2.2 TransE 扩展2.3 TransE 能力分析 三、连词查询(conjunctive queries)3.1 Query2box 原理1)、投影2)、交集查询&#xff08;AND 操作)3)、联合查询&#xff08;OR 操…

AI任务相关解决方案2-基于WOA-CNN-BIGRU-Transformer模型解决光纤通信中的非线性问题

文章目录 1. 项目背景与研究意义1.1 光纤通信中的非线性问题1.2 神经网络在光纤非线性补偿中的应用现状 2. 现有模型 CNN-BIGRU-attention 分析2.1 模型架构与工作原理2.2 模型性能评估与局限性 3. 新模型优化方案3.1 WOA算法原理与优势3.2 WOA-CNN-BIGRU-MHA模型构建3.3 WOA-C…

HTTP Accept简介

一、HTTP Accept是什么 HTTP协议是一个客户端和服务器之间进行通信的标准协议&#xff0c;它定义了发送请求和响应的格式。而HTTP Accept是HTTP协议中的一个HTTP头部&#xff0c;用于告诉服务器请求方所期望的响应格式。这些格式可以是媒体类型、字符集、语言等信息。 HTTP A…

39-居住证管理系统(小程序)

技术栈: springBootVueMysqlUni-app 功能点: 群众端 警方端 管理员端 群众端: 1.首页: 轮播图展示、公告信息列表 2.公告栏: 公告查看及评论 3.我的: 联系我们: 可在线咨询管理员问题 实时回复 居住证登记申请 回执单查看 领证信息查看 4.个人中心: 个人信息查看及修改…

鸿蒙OSUniApp 开发的滑动图片墙组件#三方框架 #Uniapp

UniApp 开发的滑动图片墙组件 前言 在移动应用中&#xff0c;图片墙是一种极具视觉冲击力的内容展示方式&#xff0c;广泛应用于相册、商品展示、社交分享等场景。一个优秀的滑动图片墙组件不仅要支持流畅的滑动浏览&#xff0c;还要兼容不同设备的分辨率和性能&#xff0c;尤…

碰一碰系统源码搭建==saas系统

搭建“碰一碰”系统&#xff08;通常指基于NFC或蓝牙的短距离交互功能&#xff09;的源码实现&#xff0c;需结合具体技术栈和功能需求。以下是关键步骤和示例代码&#xff1a; 技术选型 NFC模式&#xff1a;适用于Android/iOS设备的近场通信&#xff0c;需处理NDEF协议。蓝牙…

自动驾驶决策规划框架详解:从理论到实践

欢迎来到《自动驾驶决策规划框架详解:从理论到实践》的第二章。在本章中,我们将深入探讨自动驾驶系统中至关重要的“大脑”——决策规划模块。我们将从基本概念入手,逐步解析主流的决策规划框架,包括经典的路径速度解耦方法、工业界广泛应用的Apollo Planning框架、应对复杂…

服务器定时任务查看和编辑

在 Ubuntu 系统中&#xff0c;查看当前系统中已开启的定时任务主要有以下几种方式&#xff0c;分别针对不同类型的定时任务管理方式&#xff08;如 crontab、systemd timer 等&#xff09;&#xff1a; 查看服务器定时任务 一、查看用户级别的 Crontab 任务 每个用户都可以配…

小白的进阶之路系列之四----人工智能从初步到精通pytorch自定义数据集下

本篇涵盖的内容 在之前的文章中,我们已经讨论了如何获取数据,转换数据以及如何准备自定义数据集,本篇文章将涵盖更加深入的问题,希望通过详细的代码示例,帮助大家了解PyTorch自定义数据集是如何应对各种复杂实际情况中,数据处理的。 更加详细的,我们将讨论下面一些内容…

DeepSeek实战:打造智能数据分析与可视化系统

DeepSeek实战:打造智能数据分析与可视化系统 1. 数据智能时代:DeepSeek数据分析系统入门 在数据驱动的决策时代,智能数据分析系统正成为企业核心竞争力。本节将使用DeepSeek构建一个从数据清洗到可视化分析的全流程智能系统。 1.1 系统核心功能架构 class DataAnalysisS…

力扣100题---字母异位词分组

1.字母异位词分组 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 方法一&#xff1a;字母排序 class Solution {public List<List<String>> groupAnagr…

使用子查询在 SQL Server 中进行数据操作

在 SQL Server 中&#xff0c;子查询&#xff08;Subquery&#xff09;是一种在查询中嵌套另一个查询的技术&#xff0c;可以用来执行复杂的查询、过滤数据或进行数据计算。子查询通常被用在 SELECT、INSERT、UPDATE 或 DELETE 语句中&#xff0c;可以帮助我们高效地解决问题。…

Flask集成pyotp生成动态口令

Python中的pyotp模块是一个用于生成和验证一次性密码&#xff08;OTP&#xff09;的库&#xff0c;支持基于时间&#xff08;TOTP&#xff09;和计数器&#xff08;HOTP&#xff09;的两种主流算法。它遵循RFC 4226&#xff08;HOTP&#xff09;和RFC 6238&#xff08;TOTP&…

触控精灵 ADB运行模式填写电脑端IP教程

•ADB模式&#xff0c;如果你手机已经root则可以直接运行&#xff0c;无需安装电脑端。 •ADB模式&#xff0c;如果你手机没有root&#xff0c;那你可以windows电脑下载【极限投屏】软件&#xff0c;然后你的手机和电脑的网络要同一个wifi&#xff0c;然后把你电脑的ip地址填写…