首页 > 代码库 > 《深入浅出WPF》学习笔记之深入浅出话资源
《深入浅出WPF》学习笔记之深入浅出话资源
资源的使用
每个继承自FrameworkElement的类都有一个Resources的字段属性,用来存放自己的资源对象,Resources的类型为SourceDictionary,可以指定Source属性为一个文件路径而引用整个文件的资源。
<Window.Resources> <sys:String x:Key="title">资源示例</sys:String> </Window.Resources>//引用外部资源文件 <Window.Resources> <ResourceDictionary Source="skin.xaml"></ResourceDictionary> </Window.Resources>//通过代码查找 Object obj1 = Resources["key1"]; Object obj2 = FindResource("key2");
当在XAML中通过标记扩展引用资源时会自动向对象上层寻找,直到找到Application.Resources,还未找到时抛出异常。通过代码调用方法FindResource的效果与在XAML中通过标记扩展应用相同,即会自动向上层对象查找,未找到时抛出异常。通过具体对象的引用Resources["key"]只会查找该字典中的资源,并且未找到时不会抛出异常。
DynamicResource与StaticResource
静态资源指的是在程序载入后一次性使用资源,动态资源指的是在程序运行过程中仍会去访问资源,如果资源已改变则引用资源的对象会得到新资源值。如果确定资源不会改变应使用StaticResource引用资源,如果资源可能会改变应使用DynamicResource应用资源。
二进制资源
可以在项目的Properties文件夹中修改Resources.resx文件来使用字符串形式的二进制资源,在XAML中通过Static标记扩展引用字符串格式的二进制资源,需要把自动生成的Resources类改成public并把所在命名空间引入到XAML中。引用其他文件资源时直接把文件加入到项目中并设置文件属性的Build Action为Resource,Copy to Output Directory为Do Not Copy。直接通过相对路径就可以引用项目中的二进制资源。示例代码:
<Image x:Name="img" Source="Resources/Image1.png" Width="50" Height="50"></Image>//或img.Source = new BitmapImage(new Uri("Resources/Image1.png", UriKind.Relative));
《深入浅出WPF》学习笔记之深入浅出话资源
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。