C# 何时加载Generic.xaml-styles?
我想知道在应用程序启动后,存储在C# 何时加载Generic.xaml-styles?,c#,wpf,xaml,styles,C#,Wpf,Xaml,Styles,我想知道在应用程序启动后,存储在Generic.xaml文件中的样式何时被加载,在加载完成后,这种情况发生的频率有多高。我的意思是,它们是只加载一次还是每次实例化控件的新对象时加载一次?此外,样式-资源真正从资源文件中读取的频率有多高?I.我的意思是,它们是只加载一次还是每次实例化控件的新对象时加载一次 样式,资源字典仅在程序开始时加载一次。引自: 项目下“Themes”目录下的每个资源字典都将“编译”(此编译过程由msbuild和自定义生成任务完成)到BAML表示形式中,并且这些BAML文件将
Generic.xaml
文件中的样式何时被加载,在加载完成后,这种情况发生的频率有多高。我的意思是,它们是只加载一次还是每次实例化控件的新对象时加载一次?此外,样式
-资源真正从资源文件中读取的频率有多高?I.
我的意思是,它们是只加载一次还是每次实例化控件的新对象时加载一次
样式
,资源字典
仅在程序开始时加载一次。引自:
项目下“Themes”目录下的每个资源字典都将“编译”(此编译过程由msbuild和自定义生成任务完成)到BAML表示形式中,并且这些BAML文件将被视为最终编译的程序集的资源文件
主题程序集的另一个好处是,您可以使用主题程序集定义“仅资源”或“共享资源”程序集,因为主题程序集中的资源字典将只加载一次,这比ResourceDictionary.MergedDictories机制带来的好处多得多
II.
此外,样式资源真正从资源文件中读取的频率有多高
每个样式
,资源字典
都被编译成BAML代码,这些资源是程序集的一部分。JIT编译器(在开始时)将所有程序集加载到内存中一次,进一步的工作将在内存中的应用程序中进行。我的意思是,我不认为应用程序每次读取文件样式时,根据JIT编译器的逻辑,所有内容都以元数据的形式存储在内存中,后续处理必须在内存中进行
关于JIT编译器的工作和.NET的工作,您可以阅读一篇精彩的文章
Jeffrey Richter的
@user1574054:请查看我的编辑,我希望它对您有用。