0
如果我有一個Windows窗體控件是這樣的:爲什麼Windows窗體控制WPF窗口中的塊預覽事件?
System.Windows.Forms.Button button = new System.Windows.Forms.Button()
{
Width = 1000,
Height = 1000
};
Host.Child = button;
我訂閱事件是這樣的:
PreviewStylusDown="Window_PreviewStylusDown"
PreviewStylusUp="Window_PreviewStylusUp"
PreviewTouchDown="Window_PreviewTouchDown"
PreviewTouchUp="Window_PreviewTouchUp"
我想肯定我的WPF窗口應該接收的事件。然而,當按鈕被觸摸時,事件永遠不會升起。
Winforms控件如何吸收像PreviewTouchDown這樣的預覽事件?如果這是預覽,那是不是意味着它在隧道階段被提升了?這不意味着窗口在它到達WindowsFormsHost之前應該收到事件嗎?這裏發生了什麼?
雖然這並沒有解決隧道和預覽事件直接,但它仍然揭示了這個問題的一些情況。如果將它們視爲單獨的窗口,那麼隧道將不適用,因爲WinForms控件不被視爲WPF窗口的子項,因此不會參與隧道,目標定位或冒泡。這也解釋了爲什麼該控件出現在所有WPF控件之前,無論您如何設置它們。 –
他們已經盡最大努力將來自兩個不同世界的東西粘合在一起。 :)事件隧道的概念在WinForms中甚至沒有形成,對吧?哦,是的,我意識到你的問題是爲什麼預覽事件不會從WPF視覺樹的根元素中解僱,我沒有 – kennyzx