调用 VisualTreeHelper.GetChild() 时出现 ArgumentOutOfRangeException
ArgumentOutOfRangeException when calling VisualTreeHelper.GetChild()
有时我 运行 在调用 VisualTreeHelper.GetChild()
.
时陷入 ArgumentOutOfRangeException
异常提到当 VisualChildrenCount
等于 0 时不调用该方法 - 这正是调用之前的 if
应该做的。
我是不是遗漏了什么明显的东西?我还尝试访问 contentPresenter.VisualChildrenCount
但 属性 受到保护。
如果具有给定索引的子项不存在,GetChild
方法将抛出 ArgumentOutOfRangeException
。异常消息指的是您传入的 VisualChildrenCount
property of the Visual
。正如您已经注意到的,此 属性 是 protected
。
但是,您可以改用 GetChildrenCount
on VisualTreeHelper
。此方法将在内部访问传入的 Visual
的上述 VisualChildrenCount
属性。
if (VisualTreeHelper.GetChildrenCount(contentPresenter) > 0)
{
if (VisualTreeHelper.GetChild(contentPresenter, 0) is UIElement contentVisual)
{
// ...your code.
}
}
有时我 运行 在调用 VisualTreeHelper.GetChild()
.
ArgumentOutOfRangeException
异常提到当 VisualChildrenCount
等于 0 时不调用该方法 - 这正是调用之前的 if
应该做的。
我是不是遗漏了什么明显的东西?我还尝试访问 contentPresenter.VisualChildrenCount
但 属性 受到保护。
如果具有给定索引的子项不存在,GetChild
方法将抛出 ArgumentOutOfRangeException
。异常消息指的是您传入的 VisualChildrenCount
property of the Visual
。正如您已经注意到的,此 属性 是 protected
。
但是,您可以改用 GetChildrenCount
on VisualTreeHelper
。此方法将在内部访问传入的 Visual
的上述 VisualChildrenCount
属性。
if (VisualTreeHelper.GetChildrenCount(contentPresenter) > 0)
{
if (VisualTreeHelper.GetChild(contentPresenter, 0) is UIElement contentVisual)
{
// ...your code.
}
}