C# 调用VisualTreeHelper.GetChild()时ArgumentOutOfRangeException
调用C# 调用VisualTreeHelper.GetChild()时ArgumentOutOfRangeException,c#,wpf,visualtreehelper,C#,Wpf,Visualtreehelper,调用VisualTreeHelper.GetChild()时,我不时遇到ArgumentOutOfRangeException 异常提到当VisualChildrenCount等于0时不调用该方法-这是调用之前的if应该做的事情 我是不是漏掉了什么明显的东西?我还尝试访问contentPresenter.VisualChildrenCount,但该属性受保护 如果具有给定索引的子级不存在,则GetChild方法将抛出ArgumentOutOfRangeException。异常消息引用了您传入的。
VisualTreeHelper.GetChild()
时,我不时遇到ArgumentOutOfRangeException
异常提到当VisualChildrenCount
等于0时不调用该方法-这是调用之前的if
应该做的事情
我是不是漏掉了什么明显的东西?我还尝试访问contentPresenter.VisualChildrenCount,但该属性受保护
如果具有给定索引的子级不存在,则
GetChild
方法将抛出ArgumentOutOfRangeException
。异常消息引用了您传入的。正如您已经注意到的,此属性受保护
但是,您可以使用。此方法将在内部访问传入的Visual
的上述VisualChildrenCount
属性
if (VisualTreeHelper.GetChildrenCount(contentPresenter) > 0)
{
if (VisualTreeHelper.GetChild(contentPresenter, 0) is UIElement contentVisual)
{
// ...your code.
}
}
太棒了,这完全有道理——我想象smth已经是这样了,但不知道如何访问它。谢谢,我不知道为什么会被否决——旧代码显然是错误的,但同时这很容易被误解。毕竟,异常是“VisualChildrenCount”,而不是GetChildrenCount()。。。