對於wpf上的每個UI控件,都有一個「加載」事件。假設我有一個用戶控件和其他控件列表,比如Combobox。現在,如果我爲「usercontrol」和「Combobox」捕獲加載事件,那麼加載事件首先發生在Usercontrol然後是Combo box,這意味着當用戶控件已經加載時,它的子元素可能不是加載完成。但是,我想捕獲全局加載事件,這意味着只有在所有控件加載成功時纔會發生加載事件。如何做到這一點?提前致謝。如何捕捉WPF中的全局加載事件
回答
沒有全局的Loaded
事件,您聲明'加載事件首先發生在Usercontrol然後是組合框',這可能是由於您註冊這些事件的順序。你究竟想達到什麼目的?
其他可能對您有用的事件是LayoutUpdated
,每次修改視覺樹時都會觸發此事件。您可以註冊一個處理程序,首次捕獲此事件,然後檢查UI狀態以確定您的UI何時初始呈現。
但是,如果您在UI中執行相當複雜或特殊的操作,通常只需要使用這些技術,例如創建複雜的新控件。對於大多數應用程序,您不需要處理這些事件中的任何一個。
說,我有20-30組合框,當他們正確加載我想要添加一些項目給他們每個人。現在,如果我在用戶控件的加載事件上執行此操作,那些組合框可能無法訪問(因爲它們尚未加載)。我想要一個事件,只有當用戶控件中的所有控件完全加載時纔會觸發... – Rana 2012-01-05 09:42:24
爲什麼在添加項目之前需要等到它們被加載?您可以直接或通過綁定將它們添加到視覺樹/屏幕之前添加它們。 – ColinE 2012-01-05 09:53:31
是的,我發現它可以o所有人都認爲只有在用戶控制加載/ initcomponent部分。控件不需要被渲染。謝謝。 – Rana 2012-01-05 18:20:43
- 1. 如何捕捉Ember中的全局keyPress事件
- 2. WPF如何捕捉的ContextMenuClosing事件
- 3. Android:如何捕捉文本上的全局雙擊事件?
- 4. C#:如何捕捉全局鼠標/ HID事件
- 5. 捕捉全局事件的中心點擊鼠標使用c#
- 6. 如何捕捉全局異常?
- 7. 如何捕捉dojox.mobile.view事件?
- 8. 如何捕捉InkCanvas,WPF中的「刪除」鍵盤事件?
- 9. 如何捕捉D3強制佈局中的擊鍵事件?
- 10. 如何捕捉PHP中的exit()事件?
- 11. 捕捉事件
- 12. 如何捕捉Firefox擴展中的文件下載事件?
- 13. WPF捕捉控件
- 14. 如何在javascript中捕捉「History.Back」事件?
- 15. 如何在javascript中捕捉dragend事件?
- 16. 如何捕捉hibernate的延遲加載?
- 17. 如何捕捉文件下載組件中的刪除和下載事件?
- 18. 如何捕捉RichEdit上的OnScroll事件?
- 19. 如何捕捉視頻的事件ExitFullScreen?
- 20. 在VBScript中捕捉事件
- 21. 如何在Android上捕捉圖像捕捉事件?
- 22. 共享加載項爲Outlook 2007中捕捉ReplyToAll事件
- 23. Rails 3 - w jQuery - 全局加載事件?
- 24. 如何捕捉窗口關閉事件?
- 25. 如何捕捉紙卷結束事件?
- 26. 如何捕捉contentEditable粘貼事件?
- 27. 如何捕捉斷開事件?
- 28. 如何正確捕捉mouseout事件?
- 29. 如何捕捉窗體公開事件
- 30. 如何捕捉「關閉」點擊事件?
你能告訴我們 - 你想達到什麼目的?如果它是使用GetTemplatedChild試圖訪問的部件的模板化控件,則只有在控件加載的所有部件完全加載時纔會觸發控制加載。 – 2012-01-05 09:30:59
我很同意@德米特里:你可能試圖在這裏做非正統的事情......請告訴我們最終的目標。 – 2012-01-05 10:06:25