与我问的earlier question相关,我看到有LoadComponent()和XamlReader.Load()。它们足够相似,我不太确定在哪种情况下我应该使用哪一个。
那么,从本质上讲,两者之间的区别是什么?
谢谢!
答案 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资源。