LoadComponent()与。 XamlReader.Load()?

时间:2009-05-26 16:42:13

标签: c# wpf xaml

与我问的earlier question相关,我看到有LoadComponent()和XamlReader.Load()。它们足够相似,我不太确定在哪种情况下我应该使用哪一个。

那么,从本质上讲,两者之间的区别是什么?

谢谢!

2 个答案:

答案 0 :(得分:4)

MSDN

<强>投机
我猜想LoadComponent会调用XamlReader.Load()。 LoadComponent看起来更像应用程序级服务,并且可能由应用程序本身用于加载所有xaml资源。 XamlReader是您想要的特定库调用。

考虑一下,因为LoadComponent是一个应用程序服务,其中XamlReader是包含该功能的库。

答案 1 :(得分:1)

Application.LoadComponent:应用程序将首先将资源预加载为&#39; Package&#39;并在PreloadedPackage类中注册,当调用LoadComponent方法时,wpf首先检查包是否存在且资源是否存在,然后检查resouse是否为xaml或baml,最后使用提供的BaseUri加载资源流

如果资源是baml,LoadComponent将使用Baml2006Reader,否则使用XamlReader处理资源流。

XamlReader.Load可以在程序集外部加载xaml资源。