gpt4 book ai didi

c# - WPF:使窗口不可调整大小,但保留框架?

转载 作者:可可西里 更新时间:2023-11-01 12:44:38 25 4
gpt4 key购买 nike

我有一个没有标题栏的窗口 (WindowStyle == WindowStyle.None)。整个窗口使用了Aero玻璃效果。当我使窗口不可调整大小 (ResizeMode == ResizeMode.NoResize) 时,玻璃效果消失,我的控件只是悬在半空中。 (本质上,窗口本身消失但保留其内容。)

有没有办法让我在不去掉窗框的情况下使窗口无法调整大小?


我已阅读问题 Enable Vista glass effect on a borderless WPF window ,但这并不是我想要的——我想保留窗口边框。有关我希望我的窗口看起来像什么的示例,请在启用 Aero 的情况下按 Alt+Tab。


澄清一下,当悬停在窗口边框上时,我根本不想显示调整大小的光标。这基本上就是我希望我的窗口看起来像的样子:

Projector

解决方案不必是严格的 WPF——为了实现这一点,我可以随意使用 Win32 API。

最佳答案

您可以 Hook wndproc 并拦截 WM_WINDOWPOSCHANGING 消息。不是严格意义上的 WPF,但可能是您最好的选择。

如果你想隐藏调整大小的游标,那么最好的办法是拦截 WM_NCHITTEST 。调用 DefWindowProc(获取默认行为),并测试返回值;如果是 HTBOTTOM、HTBOTTOMLEFT、HTBOTTOMRIGHT、HTTOP、HTTOPLEFT 或 HTTOPRIGHT,将返回值更改为 HTBORDER。

关于c# - WPF:使窗口不可调整大小,但保留框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com