左ボタンを押したままマウスをウィンドウからすばやくドラッグすると、 の代わりに が返されます。 Mouse.DirectlyOver
System.Windows.Controls.Grid
null
Window.IsMouseOver
戻り値true
new Rect(window.RenderSize).Contains(Mouse.GetPosition(window))
戻り値true
それを再現するにMainWindow()
は、次のように空の wpf プロジェクトにチェック タイマーを追加するだけです。
public MainWindow()
{
InitializeComponent();
var timer = new System.Threading.Timer(state =>
Dispatcher.BeginInvoke(new Action(
() => Debug.WriteLine("Mouse.DirectlyOver = {0}", Mouse.DirectlyOver)
)),null,0,10);
}
ゆっくりとドラッグすると、値は正しくなります。
そのための回避策はありますか?マウスがアプリケーションの外にあることを確認する正確な方法は何ですか?