我想删除WPF应用程序中的关闭按钮(右上角的x)。我在网上找到了一些提示并按照这样做:
private const int GWL_STYLE = -16;
private const int WS_SYSMENU = 0x80000;
[DllImport("user32.dll")]
private extern static int SetWindowLong(IntPtr hwnd, int index, int value);
[DllImport("user32.dll")]
private extern static int GetWindowLong(IntPtr hwnd, int index);
public MainWindow()
{
SourceInitialized += MainWindow_SourceInitialized;
InitializeComponent();
}
void MainWindow_SourceInitialized(object sender, EventArgs e)
{
WindowInteropHelper wih = new WindowInteropHelper(this);
int style = GetWindowLong(wih.Handle, GWL_STYLE);
SetWindowLong(wih.Handle, GWL_STYLE, style & ~WS_SYSMENU);
}
到目前为止工作正常,除了它还删除了我的最小化/最大化按钮。但我只想删除关闭按钮。 有没有办法只删除关闭按钮并保持最大化和最小化按钮?
对于那些认为移除x按钮是个坏主意的人,因为我之前已经读过这个:它不是由于糟糕的UI设计或其他原因。事实上,并非所有用户级别都应该被允许在生产环境中关闭应用程序。