首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在页面加载事件中使用Visualtreehelper

无法在页面加载事件中使用Visualtreehelper
EN

Stack Overflow用户
提问于 2015-09-09 17:59:55
回答 1查看 78关注 0票数 1

当我在页面加载事件中使用可视化树助手时,我不会获得任何元素并获得空异常,但是当在ButtonClick上使用它时,会得到正确的结果。

怎么处理呢?

这个函数在ButtonClick上运行得很好,但在Page_Loaded_Event上却不起作用。

代码语言:javascript
复制
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj)
    where T : DependencyObject
    {
        if (depObj != null)
        {
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
                if (child != null && child is T)
                {
                    yield return (T)child;
                }

                foreach (T childOfChild in FindVisualChildren<T>(child))
                {
                    yield return childOfChild;
                }
            }
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-09 18:26:12

实际上,我不记得了,但让我想想。也许“加载的页面”并不能保证您的整个 UI都被构造了?也许页面的构建和加载是为了显示一些最初的动画/等等,并且只是在一段时间之后才加载了实际的内容?

见本文

引用:

相反,将加载的事件处理程序附加到新加载页面的内容的根目录,并在加载的事件处理程序中执行任何元素操作、状态更改、事件连接等等。

注意,他们说的是“页面内容”,而不是“页面内容”。试试看。

如果没有帮助,您应该能够使用加载的按钮(或任何其他附近的控件)。

如果即使这样也没有帮助,您将需要检查哪些模板被该页面使用,以及它们何时实际被实例化,并且只在那个时间点之后才使用您的ui树扫描器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32486344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档