在我的WPF項目中,我有一些複雜的控制。在這個項目中,除了MainWindow之外,我只使用Controls(它們都是模板化的)。按類型(!)(wpf)找不到模板控件的父項
在一個屏幕上我有以下佈局(用於顯示的佈局已經被應用之後,模板和內容填寫):
MyScreenControl
-MyTableControl
--ItemsControl
--- HeaderItemsControl
- ---- HeaderItemsControl.Header
------ MyHeaderControl
----- HeaderItemsControl.Items
------ MyItemControl
------ MyItemC ONTROL
------ MyItemControl
...
當我在ScreenControl的代碼文件是,在OnMouseLeftButtonDown在方法我想,以確定是否click事件從MyHeaderControl或MyItemControl來到。
MouseButtonEventArgs的源代碼是ScreenControl,而OriginalSource是MyItemControl/MyHeaderControl的模板中的TextBlock。
我第一次找到MyItemControl/MyHeaderControl的嘗試是從OriginalSource開始並遞歸查看Parent屬性的類型。它工作正常,直到我到達模板的根目錄(在本例中爲ViewBox),但根目錄沒有父元素。
我已經在我早期的az項目中使用了這樣的方法,它工作,但後來我使用UserControls,而不是控件,也沒有模板。
任何想法我應該如何解決這個問題(一個好主意和代碼一樣好)?
THX, Tenshiko
有時它可以幫助尋找父母,直到孩子已經被加載。例如,您可以使用yourChild.Loaded事件 – peter70 2017-05-11 07:36:08