0
我有一個面板包含兩種類型(使用鼠標)元素鼠標區域和TouchArea,當用戶移動光標,或點擊在TouchArea我不」的噸要在面板上觸發任何鼠標事件(如MouseEnter
,MouseLeave
或MouseMove
)不同HitArea基於設備
我做它現在在TouchArea問題重寫HitTestCore
的方式是,我不知道任何其他方式找到如果用戶正在使用鼠標或手寫筆,除非通過查看Environment.StackTrace
,這接近了一個非常糟糕的主意。
protected override HitTestResult HitTestCore(PointHitTestParameters hitTestParameters)
{
if (Environment.StackTrace.Contains("Stylus"))
{
return base.HitTestCore(hitTestParameters);
}
return null;
}
所以主要的問題是我怎麼可以告訴客戶端在使用FrameworkElement
或者如果這樣的事情是不可能有另一種方式來忽略基於所使用的輸入設備上的事件。
如何這兩方面看事件只更新?我現在無法想象... – lokusking
@lokusking它們只是兩個矩形,它們看起來並不重要,我只是想將它們用作面板的熱點,或者可能是其他容器(如按鈕)的熱點。 – trebor
一個可能的解決方案可能是將這個大面板分成兩個小面板。一個用於鼠標,一個用於Touch。然後覆蓋觸摸面板/區域中的鼠標事件 – lokusking