如何在WPF窗口中隐藏关闭按钮? - c#

我正在WPF中编写模式对话框。如何将WPF窗口设置为没有关闭按钮?我仍然希望其WindowState具有正常的标题栏。

我找到了ResizeModeWindowStateWindowStyle,但是这些属性都不能让我隐藏关闭按钮,而是显示标题栏,如在模式对话框中一样。

参考方案

WPF没有内置属性来隐藏标题栏的“关闭”按钮,但是您可以通过几行P / Invoke来实现。

首先,将这些声明添加到您的Window类中:

private const int GWL_STYLE = -16;
private const int WS_SYSMENU = 0x80000;
[DllImport("user32.dll", SetLastError = true)]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

然后将以下代码放入Window的Loaded事件中:

var hwnd = new WindowInteropHelper(this).Handle;
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);

然后您就可以了:不再需要关闭按钮。标题栏的左侧也没有窗口图标,这意味着没有系统菜单,即使您右键单击标题栏也是如此。

请注意,Alt + F4仍将关闭窗口。如果您不希望在完成后台线程之前关闭窗口,则也可以按照Gabe的建议重写OnClosing并将Cancel设置为true。

在datagrid(wpf)中选择行索引 - c#

如何在datagrid中选择行索引? 事件SelectionChanged以下代码不起作用: private DataGridRow dgr = new DataGridRow(); private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { thi…

将GUI导出为XML? - c#

是否有工具采用C#或其他语言设计的GUI,可以采用屏幕布局并将其导出到XML文件,从而最终获得以XML术语表示的屏幕模板?以及获取XML文件并显示结果屏幕? c#参考方案 您是否在WPF中调查过XAML?您提到了C#,所以这似乎与您所要求的直接一致。http://en.wikipedia.org/wiki/XAML另一个好的出发点可能是:http://en.…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解统计城市的所有灯泡

这个是我刚毕业的时候,一个真实的面试题,这是一个开放题。题目描述:想办法,将一个城市的所有灯泡数量统计出来。题解:费米估算法1、如果某个城市常驻人口有1000万2、假设每5人居住在一套房里,每套房有灯泡5只,那么住宅灯泡共有1000万只3、假设公众场所每10人共享一只灯泡,那么共有100万只4、主要的这两者相加就得出了1100万只当然实际上这是估算的,具体应…

LeetCode题解黑白圆盘

一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?题解:可以用一个相机即可