【发布时间】:2009-05-26 16:42:12
【问题描述】:
与我问的earlier question 相关,我看到有LoadComponent() 和XamlReader.Load()。它们足够相似,以至于我不太确定在什么情况下应该使用哪一个。
那么,从本质上来说,两者有什么区别呢?
谢谢!
【问题讨论】:
与我问的earlier question 相关,我看到有LoadComponent() 和XamlReader.Load()。它们足够相似,以至于我不太确定在什么情况下应该使用哪一个。
那么,从本质上来说,两者有什么区别呢?
谢谢!
【问题讨论】:
MSDN:
推测
我猜 LoadComponent 调用XamlReader.Load()。 LoadComponent 看起来更像是一个应用程序级别的服务,并且可能被应用程序本身用来加载所有的 xaml 资源。 XamlReader 是您想要的特定库调用。
将其视为 LoadComponent 是一个应用程序服务,其中 XamlReader 是包含该功能的库。
【讨论】:
Application.LoadComponent:Application会先将资源作为一个'Package'预加载并注册到PreloadedPackage类中,调用LoadComponent方法时,wpf首先检查包是否存在和资源是否存在,然后检查resouse是xaml还是baml,最后加载提供 BaseUri 的资源流
如果资源是 baml,LoadComponent 将使用 Baml2006Reader,否则使用 XamlReader 处理资源流。
XamlReader.Load 可以在程序集外加载 xaml 资源。
【讨论】: