В моем проекте WPF у меня есть немного сложный элемент управления. В проекте я использую только элементы управления (все они шаблонные), кроме MainWindow.
На одном экране у меня есть следующий макет (для отображения макета после применения шаблонов и заполнения содержимого):
-MyTableControl
--ItemsControl
--- HeaderItemsControl
----- HeaderItemsControl.Header
------ MyHeaderControl
----- HeaderItemsControl.Items
------ MyItemControl
------ MyItemControl
------ MyItemControl
...
Когда я нахожусь в файле кода ScreenControl, в методе OnMouseLeftButtonDown я хотел бы определить, произошло ли событие щелчка из MyHeaderControl или MyItemControl.
Источник MouseButtonEventArgs - это ScreenControl, а исходный источник - TextBlock в шаблоне MyItemControl / MyHeaderControl.
Моя первая попытка найти MyItemControl / MyHeaderControl заключалась в том, чтобы начать с OriginalSource и рекурсивно посмотреть на тип свойства Parent. Он работает нормально, пока я не доберусь до корня шаблона (который в данном случае является ViewBox), но в корне нет родительского элемента.
Я использовал такой метод в предыдущем моем проекте az, и он работал , но тогда я работал с UserControls, а не с элементами управления или шаблонами. Tenshiko