首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >鼠标捕获失败?

鼠标捕获失败?
EN

Stack Overflow用户
提问于 2009-01-13 00:58:00
回答 1查看 36.7K关注 0票数 19

我希望无论光标是否在我的应用程序窗口上,都能够访问鼠标的坐标。

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

我的问题可能是什么?

我的窗口的cs文件如下:

代码语言:javascript
复制
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);
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-01-13 10:57:23

传递给Mouse.Capture()的控制需要是Visible和启用

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

在XAML中:

代码语言:javascript
复制
<Window ... .. .. Title="My Window" loaded="Window_Loaded">
...
</Window>

在代码中:

代码语言:javascript
复制
private void Window_Loaded(object sender, RoutedEventArgs e)
{
  var b = Mouse.Capture(this);
}

我以前没有捕获过整个窗口,所以不确定它是如何工作的。它的典型用法是。

  1. MouseDown:-在mouse
  2. MouseUp:-的子进程X和Y坐标上调用Mouse.Capture(null)以清除鼠标事件捕获。
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/437639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档