我一直在打我的頭靠在一個WPF彈出的問題,我希望有人能幫助我:) 輪廓是這樣的:彈出窗口在WPF立即失去焦點,靠近
我們的應用程序商店的列表UIObjects - 這些元素代表在視口3d中顯示的元素(通過成員UIRenderObject,它只是一個帶有位圖的平面,方形網格)和樹視圖(通過成員TreeViewItem)。
在任何一種情況下,當對象檢測到右鍵單擊時,它會嘗試打開一個彈出窗口。 操作的代碼大約是直線前進,你可以得到:
ContextMenu contextMenu = new ContextMenu();
//add content
contextMenu.IsOpen = true;
當我在視口中單擊,一切正常 - 在彈出的打開,並保持打開狀態,直至失去焦點或做出選擇。 但是,在樹形視圖中,彈出窗口失去焦點並立即關閉。
我試着明確地設置焦點,明確地設置PlacementTarget,將鼠標事件標記爲在打開彈出窗口之前和之後處理的,扁平標記彈出窗口爲「StaysOpen」和其他一些事物,以及它仍然立即關閉。
任何幫助將不勝感激。提前致謝!
是否有任何TreeView或TreeView項單擊事件綁定到處理程序,如果是的話 - 這些處理程序在做什麼? – 2009-12-07 16:54:35
在TreeViewItem上有左,右和中間的點擊處理程序 - 它們分別傳遞給UIObject做自己的事情,然後調用適當的鼠標按鈕的UIElement基本處理程序。 因此,在我的Popups的情況下,'base.OnMouseRightButtonDown'。 在UIObject的RightClick處理程序中,發生的所有事情都是對ShowContextMenu的調用,它將填充並打開彈出窗口。 左鍵單擊即可選擇樹形視圖項目。中點擊根本不會做任何事情。 我試着刪除對base.OnMouseRightButtonDown的調用,只是將事件標記爲已處理,但無濟於事。 – b34r 2009-12-07 17:24:31