gpt4 book ai didi

c# - 鼠标捕获失败?

转载 作者:行者123 更新时间:2023-12-03 12:52:06 26 4
gpt4 key购买 nike

我希望能够访问鼠标的坐标,而不管光标是否在应用程序的窗口上方。

当我使用Mouse.Capture(IInputElement)或UIElement.CaptureMouse()时,两者均无法捕获鼠标并返回false。

我可能是什么问题?

我的窗口的cs文件如下:

using System.Windows;
using System.Windows.Input;

namespace ScreenLooker
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();

bool bSuccess = Mouse.Capture(this);
bSuccess = this.CaptureMouse();
}

protected override void OnMouseMove(MouseEventArgs e)
{
tbCoordX.Text = e.GetPosition(this).X.ToString();
tbCoordY.Text = e.GetPosition(this).Y.ToString();
//System.Drawing.Point oPoint = System.Windows.Forms.Cursor.Position;
//tbCoordX.Text = oPoint.X.ToString();
//tbCoordY.Text = oPoint.Y.ToString();

base.OnMouseMove(e);
}
}
}

最佳答案

传递给Mouse.Capture()的控件必须为可见启用

尝试将Mouse.Capture放入Loaded事件处理程序中,例如

在XAML中:

<Window ... .. .. Title="My Window" loaded="Window_Loaded">
...
</Window>

在代码中:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var b = Mouse.Capture(this);
}

我之前没有捕获整个窗口,因此不确定其工作方式。它的典型用法是。
  • MouseDown:-在子控件
  • 上调用 Mouse.Capture()
  • MouseMove:-处理鼠标
  • 的X和Y坐标
  • MouseUp:-调用Mouse.Capture(null)清除鼠标事件捕获。
  • 关于c# - 鼠标捕获失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/437639/

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