gpt4 book ai didi

c# - 在 wpf 中移动无边框窗口

转载 作者:可可西里 更新时间:2023-11-01 08:35:04 25 4
gpt4 key购买 nike

在我的 C# WinForms 应用程序中,我有一个隐藏了默认控件的主窗口。

因此,为了允许我四处移动它,我在主窗口中添加了以下内容:

private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;
private const int WM_NCLBUTTONDBLCLK = 0x00A3;

protected override void WndProc(ref Message message)
{
if (message.Msg == WM_NCLBUTTONDBLCLK)
{
message.Result = IntPtr.Zero;
return;
}

base.WndProc(ref message);

//Allow window to move
if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
message.Result = (IntPtr)HTCAPTION;
}

我有一个 WPF 应用程序,其中我还隐藏了默认控件,我也想这样做。我看到主窗口是从“窗口”派生的,所以上面的代码不起作用。我如何在 WPF 中执行此操作?

最佳答案

为此,您需要将事件处理程序附加到窗口的 MouseDown 事件,检查是否按下鼠标左键并调用 DragMove 方法 window 。

这是一个具有此功能的窗口示例:

public partial class MyWindow : Window
{
public MyWindow()
{
InitializeComponent();
MouseDown += Window_MouseDown;
}

private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
DragMove();
}
}

关于c# - 在 wpf 中移动无边框窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20623837/

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