我真正想要的是IsHitTestVisible的一個版本,忽略了鼠標點擊事件但仍捕獲鼠標進入和離開事件。WPF:忽略上疊加/裝飾器的鼠標點擊,但處理MouseEnter事件
背景: 每次在焦點控制下彈出信息覆蓋圖。這是一項要求,所以我無權刪除此行爲。這是使用包含矩形形狀的裝飾器來實現的,該矩形填充了圖像畫筆。所有控件都以編程方式創建,不涉及XAML。
期望的行爲: 當通過矩形用戶將鼠標,它應該成爲部分透明的。這樣他們就可以看到疊加層下面的其他控件並點擊它們。 當用戶點擊疊加層時,應該將點擊傳遞給覆蓋層下的任何控件,就在用戶點擊的位置。
問題: 如果我設置IsHitTestVisible爲True,讓鼠標點擊通過,我不明白的MouseEnter事件。
有一個簡單的方式離開IsHitTestVisible True,然後通過所有,但2-3事件裝飾器下方的正確的控制?我正在尋找一種解決方案,不涉及計算光標下的控件,因爲WPF顯然能夠爲我做這件事。
或者,我可以設置IsHitTestVisible爲False,但然後用另一種簡單的方法來確定,當鼠標移動到裝飾器?
更新:我仍在期待一個答案,但截至目前最有前途的解決方案似乎離開IsHitTestVisible真實的,並使用WPF命中測試的API搞清楚是鼠標底下是什麼類型的控制光標;如果這是我所知道的,我會發送一個Click命令給它。不知道這是否值得做,但;截至目前點擊解除我的覆蓋,所以用戶只需點擊兩次。
謝謝!
你有沒有解決這個問題?我有完全相同的要求。 – Grokys 2014-02-06 19:38:59