WPF Prism – 在哪里放资源?
我有一个棱镜应用程序和各种模块。 我想知道找到资源的最佳位置在哪里,例如样式,画笔,控制模板,数据模板?
我应该制作一个单一的资源字典并将所有内容放在那里 每个模块应该有自己的资源吗? 或者每个视图? 我想遵循Prism的目标,保持一切模块化,但我也没有看到在每个模块中重新声明相同资源的重点……
我用Prism开发应用程序,并且我使用的技术非常接近Prism手册中描述的。 有YourApplication.Infrastructure项目,您通常放置所有共享接口等。所以:
- 我只是添加项目YourApplication.Resources
- 创建文件夹主题
- 在Themes文件夹中为每组资源创建单独的xaml文件(例如Generic.WPF.xaml用于标准WPF控件的样式,Generic.Brushes.xaml用于画笔等)
-
创建文件主题\ Generic.xaml(完全使用此名称,它将在未来增加巨大的好处)与内容类似
-
现在你可以在任何模块中添加这些资源(你有单独的项目,对吧?),将YourApplication.Resources的引用添加到该项目并添加到视图的xaml:
我不知道,也许这种方式有一些问题,但它有效,对我来说效果很好。 如果有人可以这种方式评论(优点/缺点) – 我会很高兴听到它!
我通常放在ResourceDictionary
应用程序范围的ResourceDictionary
,它被添加到App.xaml
或StartupWindow.xaml
特定View的资源通常位于View中。 例如,用于CalendarView的UserControl将包含日历的任何自定义资源,例如特定于日历的画笔,样式,模板等。
我通常没有理由制作模块范围的资源,但如果我曾经做过,我会为模块提供一个ResourceDictionary
,可以在运行时加载到应用程序的合并字典中,或者包含在模块中的各个视图中。
我想分享一些新的知识。 我正在使用@chopikadze方法。 这真的很酷。 谢谢你!
但是,如果你不想每次为每个控件写这些代码:
然后你就可以在你的Bootstrapper
App.xaml
中声明
: