我现在有这行代码,我想在所有案件工作:获取窗口的视觉内容
var visualWindowContent = (UIElement)window.Content;
时Window.Content是的UIElement这种方法将工作。但是,如果它是一个非可视对象,然后将DataTemplate应用到它上面呢?上面的代码行会抛出一个糟糕的强制转换异常。那么如何在这种情况下获得窗口的视觉内容?
编辑:起初我说VisualTreeHelper.GetChild(window,0)返回null,但它实际上是非null。我的目的是通过将visualWindowContent传递给AdornerLayer.GetAdornerLayer来获得根adorner层。事实证明,由于该节点在视觉树中不够深,即AdornerDectorator的后代,因此在传递窗口的直接视觉子节点时失败(返回null)。
我想在所有情况下 – HappyNomad
@HappyNomad编辑视觉到包括... –
请在填写问题标记: var cp = FindVisualChild(window); var visualWindowContent =(UIElement)cp.ContentTemplate.FindName(“???”,cp); –
HappyNomad