在WPF中通常需要使用资源字典,特别是多语言的时候,涉及到许多内容,对于资源字典,主要是以键值对的方式进行内容的定义。
对于中文,有对应的key存在以及对应的值存在。通常情况下添加新的字典文件的时候,在字典文件的属性文件中生成操作中定义的是page,而自定义工具是XamlIntelliSenseFileGenerator。工具的作用就是将配置文件编译成相关的二进制文件,以便在程序中调用。如下截图就是默认的方式。如果使用默认方式,资源字典文件*.Xaml文件会编译到程序中生成baml文件,所以相关的键值对都被写死到程序当中,在程序外部无法实现即时更改,即时生效的效果。在这里贴一下微软官网对于生成操作的定义:https://docs.microsoft.com/zh-cn/visualstudio/ide/build-actions?view=vs-2019
此处我的需求是程序加载外部的资源文件,修改资源文件的键值对,达到不动程序而修改相关内容的效果。所以此处我的配置为:
程序内部加载资源文件为:Application.LoadComponent(new Uri(@"\Resources\Languages-CN.xaml", UriKind.Relative)) as ResourceDictionary;
通过以上的方式即可修改资源文件,程序就能加载成相关的键值对,而不需要修改代码的内容。
关于WPF资源字典生成操作与外部更新即时生效
最新推荐文章于 2024-04-11 12:06:02 发布