如何在MahApps.Metro窗口中隐藏关闭按钮?

3

我试图隐藏/移除MahApps MetroWindow上的关闭按钮,但没有成功。

我已经尝试了以下代码:

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);

private void Window_Loaded(object sender, RoutedEventArgs e)
{
        var hwnd = new WindowInteropHelper(this).Handle;
        SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
}

我也设置了一些属性:

...ShowTitleBar="False" WindowStyle="None" ResizeMode="NoResize" 
    Loaded="Window_Loaded" ...

Window_Loaded事件已正确触发,但是这个问题的代码似乎不起作用。

这是实际结果:

enter image description here

为什么按钮没有消失?我做错了什么?


当我尝试时,它运行得非常好。但是这不像一个正常的Window类,很难猜测ShowTitleBar来自哪里。 - Hans Passant
我正在使用MahApps Metro框架,也许这就是问题所在? - Bender
是的,那就是问题所在。显然你需要更新你的问题。 - Hans Passant
嗯,我真的不知道谁能提供更多细节。我询问了关于git支持mahapp来看看这个问题,也许他们可以处理这个问题。 - Bender
1个回答

24
您可以使用 MetroWindowShowCloseButton 依赖属性。

2
谢谢,你的工具包太棒了。 - Luis de Haro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接