我在这里回答了一个类似的问题,并为 WPF 编辑了它,您可以使用一个有趣的属性来了解 Compisition 引擎如何操作,将调度程序 Pump 拖尾到一个渲染上下文中。这是一个非常轻量级的选择。
另外,我猜你知道企业图书馆和统一?
有一个WPF 应用程序块,所以使用该模式并不太痛苦;)但他们不是说,没有痛苦就没有收获吗?
还有 CAB(复合 UI 应用程序块),与统一联系在一起。WPF SDK人员制作了 Silverlight 和 WPF 平台。(又名棱镜)。
哦,对了,你还问资源?我更喜欢在 Application 类中手动加载资源。我已经意识到一件事,假设您在子文件夹中有一个 ResourceDictionary,并且您正在该 ResourceDictionary 中加载 MergedDictionaries。因此,如果在您的 Application 类中,您加载“my-res-dir/MergedDictionaryLoader.xaml”(通过代码或 xaml),则所有未来的 MERGEDDICTIONARIES 加载都从“my-res-dir”加载。
如果你问我有点疯狂,我认为由于进程当前目录没有改变,你应该为所有其他目录指定“my-res-dir/foo.xaml”。然而,事实并非如此(我不相信这至少在任何地方都有很好的记录,应该被认为是一个错误恕我直言)。
所以请记住,WPF 资源字典加载将基于当前XAML所在的目录。因此,您从“my-res-dir/MergedDictionaryLoader.xaml”中指定 Source="foo.xaml"。我什至玩过 URI 包/绝对语法,但我从未发现它更直观。