首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# - 为什么全屏winform应用程序永远不会覆盖任务栏?

在Windows操作系统中,任务栏是一个非常重要的组件,用于显示当前正在运行的应用程序以及系统托盘图标。默认情况下,任务栏总是位于屏幕底部,并且无法移动或隐藏。因此,开发人员需要确保其应用程序不会遮挡任务栏,以免影响用户体验。

对于C# WinForm应用程序,可以使用以下代码来实现全屏模式:

代码语言:csharp
复制
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;

这段代码将窗体的边框样式设置为无,并将窗体最大化显示,从而实现全屏模式。但是,即使使用这种方式,仍然无法避免窗体遮挡任务栏。为了解决这个问题,可以使用Windows API来调整窗体的大小和位置,以确保它不会遮挡任务栏。

具体来说,可以使用以下代码来获取屏幕的工作区域,也就是除去任务栏和其他系统组件后的可用区域:

代码语言:csharp
复制
Rectangle screenRectangle = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;

然后,可以使用这个矩形的大小和位置来调整窗体的大小和位置,从而确保窗体不会遮挡任务栏:

代码语言:csharp
复制
this.SetBounds(screenRectangle.X, screenRectangle.Y, screenRectangle.Width, screenRectangle.Height);

这样,即使是全屏的WinForm应用程序,也不会遮挡任务栏,从而提供更好的用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SharpDx 进入全屏模式

本文告诉大家两个不同的方法进入全屏模式 本文属于 SharpDx 系列 博客,建议从头开始读 本文的上一篇是 C# 从零开始写 SharpDx 应用 初始化dx修改颜色 本文的代码将会在上一篇的代码上修改...,隐藏任务栏 在 Windows 只要整个屏幕的所有像素被填充,那么任务栏将会自动隐藏 在 RenderForm 有一个属性是 IsFullscreen 如果单修改这个属性是没有用的,需要同时设置 AllowUserResizing...,在 SharpDx 里面不会占用屏幕透明的内存,也就是透明部分不需要使用程序进程的内存 交换链全屏 如果开启交换链的全屏,那么窗口透明将无法使用,使用交换链透明,在 Windows 的 DWM 将会整个屏幕的绘制交给程序...,此时的程序绘制速度能更快 其他的应用有关渲染部分都不会执行,特别是其他的 dx 程序,这样程序可以用到很多的计算。...清真的程序在其他程序进去全屏的时候,渲染策略会和这个程序最小化一样,不会做实际渲染

1.4K20

SharpDx 进入全屏模式 窗口模式设置透明窗口交换链全屏

本文告诉大家两个不同的方法进入全屏模式 本文属于 SharpDx 系列 博客,建议从头开始读 本文的上一篇是 C# 从零开始写 SharpDx 应用 初始化dx修改颜色 本文的代码将会在上一篇的代码上修改...,隐藏任务栏 在 Windows 只要整个屏幕的所有像素被填充,那么任务栏将会自动隐藏 在 RenderForm 有一个属性是 IsFullscreen 如果单修改这个属性是没有用的,需要同时设置 AllowUserResizing...,在 SharpDx 里面不会占用屏幕透明的内存,也就是透明部分不需要使用程序进程的内存 交换链全屏 如果开启交换链的全屏,那么窗口透明将无法使用,使用交换链透明,在 Windows 的 DWM 将会整个屏幕的绘制交给程序...,此时的程序绘制速度能更快 其他的应用有关渲染部分都不会执行,特别是其他的 dx 程序,这样程序可以用到很多的计算。...清真的程序在其他程序进去全屏的时候,渲染策略会和这个程序最小化一样,不会做实际渲染 SharpDx 系列 SharpDX.DXGI.SwapChain.SetFullscreenState(SharpDX.Mathematics.Interop.RawBool

2K30

Windows桌面暗水印方法与C++实现

为了让被覆盖的其它窗体能正常响应鼠标事件,需要屏蔽自己窗体的鼠标事件 本文所讲的方法就是使用窗体实现 DirectX实现 许多全屏游戏的画面是由DirectX或OpenGL绘制,此时所有窗体都会被屏蔽,...::WA_TransparentForMouseEvents, true); 窗体属性 修改窗体属性 SetWindowLong(hwnd, GWL_EXSTYLE, widgetStyle); //永远置顶...setWindowFlags(Qt::WindowStaysOnTopHint); //删除边框 this->setWindowFlags(Qt::FramelessWindowHint); //不在任务栏显示...WS_EX_TOPMOST: 窗口处于所有非最顶层窗口的上方并保持 WS_EX_TRANSPARENT: 在所有统计窗口重绘之后才重绘本窗口 WS_EX_TOOLWINDOW: 该窗口为悬浮窗,悬浮窗将不会出现在任务管理器或...Alt+Tab菜单中 WS_EX_APPWINDOW: 窗体将被放置到任务栏之上 以上代码都是在窗体展示之前做的,下面的代码用于在窗体展示之后设置最大化并置顶 this->setWindowState

2K20

【愚公系列】2023年11月 Winform控件专题 Form控件详解

1.9 iconIcon用于表示应用程序的图标,可以在标题栏、任务栏、桌面快捷方式等地方显示。...1.12 ShowInTaskbarShowInTaskbar是Winform中窗体的一个属性,它决定了窗体是否显示在任务栏中。...当ShowInTaskbar属性为True时,窗体会显示在任务栏中;当ShowInTaskbar属性为False时,窗体不会显示在任务栏中。...这时可以将子窗体的ShowInTaskbar属性设置为False,这样子窗体就不会出现在任务栏中,用户也无法通过任务栏来切换子窗体。...2.常用场景Winform中Form控件常用场景包括:窗体显示:Form是Winform中最基本的控件之一,用于显示应用程序的窗体。应用程序设置:Form可用于显示应用程序的设置窗口。

93021

Windows 对全屏应用的优化

但是为什么后面又提出了让无边框窗口通过修改大小做到全屏?然后花大量的资源优化无边框全屏窗口的性能。...原因在于以下: 全屏独占应用在分辨率切换的时候的处理相对复杂,有大量的应用没有对这方面进行支持 全屏独占应用的显卡支持也是需要具体显卡的 如果有需求让其他的窗口,如游戏工具栏,如 xbox 游戏工具栏覆盖全屏独占窗口时...如果进行频繁的切换如 alt+tab 那么这个效果比较差 此时小伙伴应该就能了解到为什么微软对全屏应用的优化将不仅是对全屏独占应用的优化,还包括对无边框窗口的全屏显示优化了。...,要求你的应用需要覆盖屏幕的每一个像素才会隐藏任务栏。...在一些有趣的设备上,不会给无边框的全屏应用设置前台焦点,因为窗口没有焦点所以此时的任务栏依然可以显示,解决方法请看 WPF 让窗口激活作为前台最上层窗口的方法 更多博客 Windows桌面实现之七(DirectX

1.7K20

Wallpaper的原理和C#实现(含源文件)

前面已经提到图标层是一个透明的覆盖全屏的大窗口,因此鼠标事件只会在图标层响应,而wallpaper可以实时响应鼠标可能是利用了Hook拦截了鼠标事件,并加入自己代码。 既然知道了原理就可以自己实现。...C#实现 界面绘制 首先创建两个窗体,一个用来播放视频,一个用来控制 上图是控制窗口,也是主窗口。...另一个视频窗口较为简单,直接用MediaPlayer覆盖全屏就行,注意需要设置WindowState为Maximized,即启动时立即最大化,同时播放器要隐藏ui,即设置uiMode为none。...,个人猜测是windows考虑到背景是一张静态图,所以不会实时刷新,而刚刚被覆盖掉的地方就会保持最后一次刷新的颜色,刚才点击“退出”时,由于先dispose了视频播放窗体,导致背景变成白板,如果不点击“...sender, FormClosingEventArgs e) { e.Cancel = true; this.Hide(); } 给窗体加上NotifyIcon控件,该控件可以显示任务栏角标

1.8K10

Windows 10 新特性变化研究 - 腾讯ISUX

(多图、多文字预警) Windows 10作为微软新一代系统的统一品牌名称,将覆盖所有尺寸和种类的Windows设备,贯彻了“移动为先,云为先(mobile first, cloud first)”的设计思路...变化分析: 从Win8~10的变化中,笔者大胆猜测微软不会放弃磁贴的设计。毕竟移动是主流,PC市场在衰弱,而微软又想所有设备使用一个系统,磁贴设计无疑更适合在移动端上使用。...五.Metro应用桌面窗口化 在Win10中,metro应用默认以窗口化方式运行,在应用标题栏图标右侧的“…”菜单中可点击“全屏显示”来全屏化。 ?...有趣的是,当窗口全屏化以后,开始菜单也会相应全屏化(如果再激进些把左侧一栏干掉…) ? 变化分析: 既然传统桌面回归了,面对传统PC用户,相应也必须弱化应用全屏的概念。...十三.程序云管理 据说Win10可以通过远程的方式关闭本地运行的应用程序,而通过任务栏里面的小图标还可以时刻提醒还有哪些应用在云端运行。相关资料有待补充。

3.2K20

C#问题攻克之使用winform调用人脸识别接口

WinForm简介 lWinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,一般使用 C# 编程。...C# WinForm 编程需要创建「Windows窗体应用程序」项目。 l.NET 提供了大量 Windows 风格的控件和事件,我们可以直接拿来使用,上手简单,开发快速。...lWindows 窗体应用程序C# 语言中的一个重要应用,也是 C# 语言最常见的应用。这套 C# WinForm 教程将教会大家如何使用 WinForm 开发一个简单的应用。...l对于每一个使用过 Windows 操作系统的人来说,Windows 应用程序不会陌生的。...应用:使用winform调用人脸识别接口的具体操作步骤 第一步. 选择C#语言,选择Windows 窗体应用(.NET Framework)。 [ajtek1jbtj.png] 第二步.

3K00

C#轻量级配置文件组件EasyJsonConfig

4)、你是否在寻找一款可以支持“热修改”( 而无要需重启应用程序读取配置文件)的配置文件组件而感到烦恼?...二、涉及覆盖的知识点 1、C# 自定义配置文件存储目录和自定义配置文件项(完全兼容Web项目和WinForm项目) (阿笨家的干货,开箱即用!)...2、C# 如何实现监听配置文件变更同时支持“热修改”读取(无需重启应用程序)。(强烈推荐) 3、C# 对象的深拷贝(Deep Copy)实战运用。...4、C# EasyJsonConfig实现自定义按照功能模块分类读写配置文件。(强烈推荐) 5、C# EasyJsonConfig实现全局读写配置文件appsettings.json。...(强烈推荐) 7、C# 微软单元测试UnitTest项目应用程序运用。 三、源码在线解读和演示 ? EasyJsonConfig 四、总结 一千个读者就有一千个哈姆雷特!仁者见仁智者见智。

68930

2014年国内最热门的.NET开源项目TOP25

如果知道.NET项目在开源中国的git上所占的比重只有5%的话,为什么这个《2014年国人开发的最热门的开源软件TOP 100》榜中.NET项目那么少就是情理之中了。   .../ Mina.NET C#   Mina.NET是.NET上的轻量级高性能网络程序框架,支持TCP、UDP和串口等多种传输通道,能够帮助开发者快速地开发高伸缩性的应用程序。   ...开发平台: VS2012 开发语言: ...   19 bobo2cj / SimpleWinformFrame C#   简单的winform开发架子,客户端主程序(tabControl),客户端自动更新程序...QQ交流群:200319579   24 xiaocong_soft / CheckUpdate.Net C#   Winform开发的检查更新程序。...可用于Winform/WPF,主要功能包括更新文件、更新程序自身、下载安装包等。

1.9K70

.NET也能玩大数据(ClickHouse与ElasticSearch)

1、写脚本(使用控制台程序+顶级语句) 2、写工具(使用Winform) 3、写接口、写服务 使用C#写代码的优点是什么?...那前同事为什么没有使用异步并发或多线程呢?Python2不支持吗?或者Python2支持,但写起来不方便?或者前同事不会写? 使用.NET开发的优点是什么?...其中一个优点是应用程序类型丰富,目前我用到的应用程序类型有: 1、控制台 2、Winform 3、Web API 4、Blazor 你是不是想说Java和Python也可以写控制台、窗体程序、Web API...每一种应用程序类型,都意味着学习成本,而这些我已经会了,时间就省下了(Blazor一开始不会,学习花了一两天)。...理解C#中的ValueTask

25030

Navi.Soft31.WinForm框架(含下载地址)

1概述 1.1应用场景 尽管互联网高速发展,互联网软件也随之越来越多,但桌面应用程序在某些领域中还是不可替代,如MIS,ERP,CRM等软件产品,同时,这类软件均包括一些通用的功能,如:与数据库操作,日志管理...n C#代码是支持goto语句的,如下图所示.但不推荐使用 ?...n 截屏(全屏),用于将整个屏幕截取,生成图片文件.适用于系统出现异常,需要将数据发送给系统管理员 n 异步示例.包括单条和多条.是基于BackgroundWorker控件,直接查看示例即可.如下图所示...n 附件列表.是指在WinForm项目,可以打开各种文件预览.包括Office,Html,Xml等 u 注:暂不支持cad文件预览 ? u 双击预览文件 ? 预览Excel文件 ?...描述:即通过代码在系统搭建一个仿IIS的服务器(利用HttpListener类),实现不同应用程序间的通信服务 2.3.2Dev表单控件 ?

2.9K70

.NET混合开发解决方案24 WebView2对比CefSharp的超强优势

程序中通过NuGet管理器引用集成WebView2控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件....NET混合开发解决方案9 WebView2控件的导航事件 .NET混合开发解决方案10 WebView2控件调用网页JS方法 .NET混合开发解决方案11 网页JS调用C#方法 .NET混合开发解决方案...12 网页JS调用C#方法访问WinForm或WPF窗体 .NET混合开发解决方案13 自定义WebView2中的上下文菜单 .NET混合开发解决方案14 WebView2的基本身份验证 .NET...的缓存记录 .NET混合开发解决方案18 调试WebView2应用 使用 WebView2 DevTools 调试应用程序 使用 Visual Studio Code 调试应用程序 使用 Visual...我为什么会写这么多篇博客来记录WebView2的使用历程,主要是在开发《建筑工程施工图BIM智能审查系统》过程中,勘察设计单位端与审查专家端(C/S架构 WinForm)的程序集成了Web端BIMFace

2.9K20

采用WPF开发截图程序,so easy!

没有掌握WPF之前,我是不会开发这么一个程序的,如果采用MFC、winform框架,工作量是相当的大,开发出来的效果肯定也比较low。本人用WPF,花了一天多的功夫,开发了这个小程序。...0, rc.Size, CopyPixelOperation.SourceCopy); } return bitmap; } 创建全屏窗体...注意窗体属性,这样才能全面覆盖整个屏幕。 图层布局 这个很有技巧!为了实现非截图区域阴影效果,费了一番心机!即使这样,感觉也比winform用起来得心应手!...注:我不是一直贬低winform,但是要承认,这两个东西不是一个时代产物。wpf设计思路比winform先进很多。只是wpf新概念多,用的人少,开发起来常常蒙圈!经过一段迷茫期,前途就会光明了!...-- 前面覆盖了一层黑色,但是截取的图像不能覆盖,只能在这里再显示截取图像 --> <Grid x:Name="gridCutImg" MouseDown

2.2K10

DotNET介绍_dotnet 6

七、C#前景 目前最为流行的不应该是Java 在国内历史原因 美国-日本-台湾-内陆10年左右 其实在21世纪初期Java以及覆盖了全中国 目前情况:Java岗位天天有,Java工程师天天多 C...不管人们开发何种应用程序,BCL总是作为构建其他所有功能的起点。...公共语言规范(CLS) 公共语言规范是一组结构和限制条件,它是公共类型系统的子集,它们一起定义了允许不同编程语言的标准集,由这些编程语言编写的应用程序可以互操作。...脚本文件 .exe windows系统上的可执行程序文件 十八、Winform框架 (1)核心文件 Form1.cs文件:winform框架的基础文件 Program.cs文件:项目的主程序文件,Main...框架的C#代码文件 Form1.Designer.cs文件:Winform框架的图形化界面代码文件 bin文件夹:程序的调试文件夹 Debug文件夹:调试结果文件夹 (2)winform操作 双击一个对象添加这个对象的默认事件

1.7K30
领券