我希望能够访问鼠标的坐标,无论光标是否在我的应用程序的窗口上.
当我使用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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Rhy*_*hys 18
传递给的控件Mouse.Capture()需要是Visible和Enabled.
尝试将Mouse.Capture放入Loaded事件处理程序中,例如
在XAML中:
<Window ... .. .. Title="My Window" loaded="Window_Loaded">
...
</Window>
Run Code Online (Sandbox Code Playgroud)
在代码中:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var b = Mouse.Capture(this);
}
Run Code Online (Sandbox Code Playgroud)
我之前没有拍过整个窗口,所以不确定它是如何工作的.它的典型用法是.
Mouse.Capture()子控件Mouse.Capture(null)以清除鼠标事件捕获.| 归档时间: |
|
| 查看次数: |
35587 次 |
| 最近记录: |