如果做到仅仅全屏即可,只需在loaded函数中添加如下代码:

   private void Window_Loaded(object sender, RoutedEventArgs e){// 设置全屏  this.WindowState = System.Windows.WindowState.Normal;this.WindowStyle = System.Windows.WindowStyle.None;this.ResizeMode = System.Windows.ResizeMode.NoResize;this.Topmost = true;this.Left = 0.0;this.Top = 0.0;this.Width = System.Windows.SystemParameters.PrimaryScreenWidth;this.Height = System.Windows.SystemParameters.PrimaryScreenHeight; }

如下文章转自:http://blog.163.com/leingliu@126/blog/static/194762822009524611352/

因为想尝试一下使Wpf应用程序的全屏状态,但是Wpf没有全屏操作的直接实现,在网上搜索一下,发现很多都是使用pinvoke调用win32动态链接库来实现,而且功能也不全,当发现参考文章中的内容时,发现了全屏的简单方法,而且也不用使用Pinvoke,随即修改和完善了功能,代码如下:

using System;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Interop;namespace PhotoViewer
{/// <summary>/// Wpf应用程序全屏辅助类/// /// ——全部使用.Net类进行操作/// ——可进入全屏和退出全屏/// ——可恢复到全屏前的状态/// ——全屏时可切换到其他应用程序/// /// Author:wowin/// Email:leingliu@126.com/// LastUpdate:2009-6-24/// </summary>public static class FullScreenHelper{private static Window _fullWindow;private static WindowState _windowState;private static WindowStyle _windowStyle;private static bool _windowTopMost;private static ResizeMode _windowResizeMode;private static Rect _windowRect;/// <summary>/// 进入全屏/// </summary>/// <param name="window"></param>public static void GoFullscreen(this Window window){//已经是全屏if(window.IsFullscreen()) return;//存储窗体信息_windowState = window.WindowState;_windowStyle = window.WindowStyle;_windowTopMost = window.Topmost;_windowResizeMode = window.ResizeMode;_windowRect.X = window.Left;_windowRect.Y = window.Top;_windowRect.Width = window.Width;_windowRect.Height = window.Height;//变成无边窗体window.WindowState = WindowState.Normal;//假如已经是Maximized,就不能进入全屏,所以这里先调整状态window.WindowStyle = WindowStyle.None;window.ResizeMode = ResizeMode.NoResize;window.Topmost = true;//最大化后总是在最上面//获取窗口句柄 var handle = new WindowInteropHelper(window).Handle;//获取当前显示器屏幕Screen screen = Screen.FromHandle(handle);//调整窗口最大化,全屏的关键代码就是下面3句window.MaxWidth = screen.Bounds.Width;window.MaxHeight = screen.Bounds.Height;window.WindowState = WindowState.Maximized;//解决切换应用程序的问题window.Activated += new EventHandler(window_Activated);window.Deactivated += new EventHandler(window_Deactivated);//记住成功最大化的窗体_fullWindow = window;}static void window_Deactivated(object sender, EventArgs e){var window = sender as Window;window.Topmost = false;}static void window_Activated(object sender, EventArgs e){var window = sender as Window;window.Topmost = true;}/// <summary>/// 退出全屏/// </summary>/// <param name="window"></param>public static void ExitFullscreen(this Window window){//已经不是全屏无操作if (!window.IsFullscreen()) return;//恢复窗口先前信息,这样就退出了全屏window.Topmost = _windowTopMost;window.WindowStyle = _windowStyle;window.ResizeMode = ResizeMode.CanResize;//设置为可调整窗体大小window.Left = _windowRect.Left;window.Width = _windowRect.Width;window.Top = _windowRect.Top;window.Height = _windowRect.Height;window.WindowState = _windowState;//恢复窗口状态信息window.ResizeMode = _windowResizeMode;//恢复窗口可调整信息//移除不需要的事件window.Activated -= window_Activated;window.Deactivated -= window_Deactivated;_fullWindow = null;}/// <summary>/// 窗体是否在全屏状态/// </summary>/// <param name="window"></param>/// <returns></returns>public static bool IsFullscreen(this Window window){if(window==null){throw new ArgumentNullException("window");}return _fullWindow == window;}}
}

还有一个不爽的问题是,在最大化时如果已经是最大化状态,必须先退出最大化状态,造成多闪烁一次,目前还没有找到解决方法。

转载于:https://www.cnblogs.com/ifinver/archive/2012/12/05/2828690.html

Wpf应用程序进入全屏和退出全屏相关推荐

  1. linux控制台则怎么退出全屏,JS 全屏和退出全屏详解及实例代码

    JS 全屏和退出全屏 js实现浏览器窗口全屏和退出全屏的功能,市面上主流浏览器如:谷歌.火狐.360等都是兼容的,不过IE低版本有点瑕疵(全屏状态下仍有底部的状态栏). 这个demo基本是够了,直接复 ...

  2. video 满屏显示_HTML5 video进入全屏和退出全屏的实现方法

    当我们使用video标签的时候,有时候因为更多的需要,我们要自己自定义控制栏,而进入和退出全屏也是其中的一部分 不同的浏览器有不同的实现方法 // Webkit element.webkitReque ...

  3. [html] HTML5如何监听video的全屏和退出全屏?

    [html] HTML5如何监听video的全屏和退出全屏? 监听fullscreenchange事件document.addEventListener('fullscreenchange', (ev ...

  4. vue中浏览器全屏和退出全屏

    1.首先要判断浏览器类型 (是否IE),来控制是否展示功能,在计算属性中判断: computed: {showFullScreenBtn () {return window.navigator.use ...

  5. 使用JavaScript使浏览器进入全屏或退出全屏

    使用JavaScript使浏览器进入全屏或退出全屏 首先使用fullscreenElement判断浏览器是否在全屏状态. 如果是:则调用exitFullscreen函数退出全屏,否则调用request ...

  6. js实现全屏和退出全屏功能

    主要是全屏和退出全屏事件,以及相应的操作(采用window.onresize监测) $(function(){//全屏$("#fullScreen").on("click ...

  7. JS实现全屏和退出全屏

    JS实现全屏和退出全屏 //全屏 function fullScreen(){var el = document.documentElement;var rfs = el.requestFullScr ...

  8. 网页怎么退出全屏,网页退出全屏有哪些快捷键?

    网页怎么退出全屏,网页退出全屏有哪些快捷键? 网页怎么退出全屏,网页退出全屏有哪些快捷键? 1.浏览器一般右上角都有个双重小框框即是还原按钮,图标是两个小口. 你点下就不是全屏啦,或者你在浏览器的边框 ...

  9. vue实现页面全屏和退出全屏

    pc端使用vue实现页面全屏和退出全屏 element.requestFullScreen() -- 全屏显示 Element.requestFullscreen()方法用于 异步请求使得Elemen ...

最新文章

  1. 任何网络都能山寨!新型黑盒对抗攻击可模拟未知网络进行攻击 | CVPR 2021
  2. SAP MM 物料主数据里某字段看不到就是屏幕格式设置导致的?
  3. 边结点结构体的定义及使用
  4. 怎么保证缓存和数据库一致性
  5. 关于nginx rewrtie的四种flag
  6. python有道翻译-Python调用有道词典翻译
  7. vscode关闭go语言的黄色波浪线
  8. 9.struts1.x中tiles框架的使用
  9. 触屏网站如何实现返回并刷新
  10. HDU 3072 SCC Intelligence System
  11. Python面试总结(四)ip正则与三次握手四次挥手
  12. Ethercat解析(九)之过程数据
  13. 带着canvas去流浪系列之五 绘制K线图
  14. Mapreduce执行过程分析(基于Hadoop2.4)——(三)
  15. linux优化ssd磁盘,Ubuntu下针对ssd硬盘优化
  16. 注塑车间维修师傅如何快速解决9种注塑机故障?
  17. java 添加盲水印_图片加数字盲水印
  18. 石墨烯气凝胶的3D打印-气凝胶(Aerogels)是世界上最轻的材料之一,石墨烯气凝胶(Graphene aerogel)又是该品类中最轻的一种
  19. 轻量级交通仿真——Flow
  20. 最新windows7旗舰版密钥

热门文章

  1. inno setup QQ音乐安装包界面
  2. MQL5 编程基础:字符串
  3. 基于java+SpringBoot框架蛋糕销售商城管理系统详细设计
  4. Pinia的安装与使用 【全网最简洁】
  5. win7、win10系统硬件最低配置需求
  6. python实现批量的IP地址,或地址段的排序并按照CIDR格式最小化聚合。
  7. 实习的“黄金圈法则”,你了解多少?
  8. docker部署Harbor
  9. 从现代操作系统中学到的东西--批处理、多道程序设计、分时系统
  10. 10款PHP开源的外贸网店电子商务管理系统