WPF 事件来捕获新添加的控件?
Posted
技术标签:
【中文标题】WPF 事件来捕获新添加的控件?【英文标题】:WPF Event to capture newly added controls? 【发布时间】:2011-06-28 21:25:45 【问题描述】:我们在 WPF 中使用 ContentControl 和其他容器。我需要将带有新子控件的通知添加到容器中。在父级中获取新创建的控件的最佳方法是什么?
【问题讨论】:
【参考方案1】:ContentControl 仅包含一个通过 ContentControl.Content 属性附加的子项。您可以挂钩 ContentControl.OnContentChanged 以发现此属性的值何时更新。
【讨论】:
【参考方案2】:最简洁的方法是从这些控件派生并覆盖报告您感兴趣的更改的方法。例如从ContentControl
派生并实现OnContentChanged
。这种方法可能对您没有吸引力。
如果您想检测子控件或子控件的更改而不从它们派生,您可以观察到此类更改会影响布局,因此您可以挂钩LayoutUpdated
事件。这种方法的问题在于,您需要通过检查Child
或Children
来查找更改来跟踪以前自己添加的孩子。您还必须小心不要挂在对以前孩子的引用,以免造成内存泄漏。但可以做到。
【讨论】:
以上是关于WPF 事件来捕获新添加的控件?的主要内容,如果未能解决你的问题,请参考以下文章
WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件