ResourceDictionary 更改如何导致 DynamicResource 重新评估?

发布于 2024-11-28 12:59:46 字数 114 浏览 2 评论 0原文

如果 Resources 字典不可观察,DynamicResource 引用如何工作? 资源字典的添加/删除方法是否具有内部代码,可以“轮询”所有 DynamicResource 引用并在删除或添加它们时刷新它们?

If Resources dictionary is not observable, how does DynamicResource reference work?
Do the Add / Remove methods of the resource dictionary have internal code that kind of "polls" all DynamicResource references and refreshes them when they are removed or added?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟凡古楼 2024-12-05 12:59:46

每个 ResourceDictionary 包含三个所有者列表。一种用于 FrameworkElement,一种用于 Application,另一种用于 FrameworkContentElement。当您访问资源属性时,将设置所有者。此外,每个 ResourceDictionary 都会将其所有者传播到合并的字典中。当字典发生变化时,它会通知所有者。此通知实际上使用包含资源表达式的本地值搜索依赖项属性。然后每个表达式都被迫重新评估。

所有这些代码都是内部的。

Each ResourceDictionary contains three list of owners. One for FrameworkElement, one for Application and another one for FrameworkContentElement. When you access the Resources property the owner is being set. Also each ResourceDictionary propagates its owner to merged dictionaries. When dictionary is changing, it notifies owners about it. This notification actually searches dependency properties with local values containing resource expression. Then each expression is forced to reevaluate.

All of this code is internal.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文