有时我会ArgumentOutOfRangeException
遇到打电话的时候VisualTreeHelper.GetChild()
。
例外提到当等于 0 时不调用该方法VisualChildrenCount
- 这是if
调用之前应该做的事情。
我在这里遗漏了一些明显的东西吗?我也尝试访问contentPresenter.VisualChildrenCount
,但该属性受到保护。
有时我会ArgumentOutOfRangeException
遇到打电话的时候VisualTreeHelper.GetChild()
。
例外提到当等于 0 时不调用该方法VisualChildrenCount
- 这是if
调用之前应该做的事情。
我在这里遗漏了一些明显的东西吗?我也尝试访问contentPresenter.VisualChildrenCount
,但该属性受到保护。
如果具有给定索引的孩子不存在,该GetChild
方法将抛出一个。ArgumentOutOfRangeException
异常消息是指您传入的VisualChildrenCount
属性Visual
。该属性protected
正如您已经注意到的那样。
但是,您可以改用GetChildrenCount
onVisualTreeHelper
。此方法将在内部访问上述VisualChildrenCount
传入的属性。Visual
if (VisualTreeHelper.GetChildrenCount(contentPresenter) > 0)
{
if (VisualTreeHelper.GetChild(contentPresenter, 0) is UIElement contentVisual)
{
// ...your code.
}
}