WPF中如何禁用/去除窗口右上角的关闭按钮
1个回答
展开全部
在WPF编程中,可能需要去除窗口的右上角的几个按钮:最大化按钮、最小化按钮和关闭按钮,其他几个都很好处理,就是这个关闭按钮,WPF模型不提供删除或隐藏功能,我们只有采用一些非正常手段,比如使用Win32函数,比如禁用,对于禁用关闭功能,可以重载OnClosing()函数来实现,使用户无法通过点击右上角的关闭按钮来关闭窗口:protectedoverridevoidOnClosing(System.ComponentModel.CancelEventArgse){
e.Cancel=true;}
另一种方法就比较麻烦了,但是也是最彻底的方法:去除关闭按钮
首先,在你的Window 类中申明:privateconstintGWL_STYLE=-16;privateconstintWS_SYSMENU=0x80000;[DllImport("user32.dll"
,SetLastError=true)]privatestaticexternintGetWindowLong(IntPtrhWnd,
intnIndex);[DllImport("user32.dll")]privatestaticexternintSetWindowLong(IntPtrhWnd,
intnIndex,
intdwNewLong);
然后,在装载事件中加入:varhwnd=newWindowInteropHelper(this
).Handle;SetWindowLong(hwnd,GWL_STYLE,GetWindowLong(hwnd,GWL_STYLE)&~WS_SYSMENU);
但是这种情况下用户仍然可以通过Alt+F4关闭窗口,所以你可能仍然需要实现上面所说的重载OnClosing()函数,将其禁用。
=================================================
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询