WPF中使用资源

    这节讲一下如何在WPF中使用资源。

01

了解资源

    在编程中,一个变量,一段代码,一张图片,一段视频或者音频,这种可以拿来为我所用的东西就可以称之为资源,一个让人眼前一亮的程序,可能会使用到许许多多的资源。在WPF中,除了常用的根据路径引用资源文件,还为我们提供了管理资源数据的“对象级”资源,以及Resources.resx文件,前者通过一个类型为ResouceDictionary的键值对对象来管理页面中定义的资源,后者则是一个资源表,可以供我们全局使用(当前并不是前者不能让我们全局使用,我们在App.xaml中定义的资源是可以被全局使用的)。

02

"对象级"资源

    我们可以在XAML页面定义一些资源供我们使用,请先看如下代码:

94c31e4aae347630e0d286da92168ff8.png

    在Window.Resources标签内的ResouceDictionary中可以定义资源,通过key属性指定资源的标识。此处我定义了key为btn_bgc字符串资源,该资源被Grid中的Button.Content属性使用,运行效果如下:

fea2141a8553a959102f697aad6844e9.png

    在Xaml中,我们可以使用标记扩展中的StaticResourceDynamicResource指令引用资源,该两者的区别是,使用StaticResource,会在程序启动时读取一次资源数据,后续如果资源数据变动,引用者是不会知道的;而DynamicResource则是会多次读取,动态更新。

    除了在Xaml中使用资源,我们也可以在代码中通过Resoure对象获取,请看如下代码:

72e8853b5d8389eae42f9d50f4bc7f3d.png

    从后台代码中,我们可以使用FindResource方法或访问Resources对象通过索引器的方式获取,但两者还是有区别的,FindResource方法的查找面很广,在App.Xaml中定义的资源,也会被找到,而Resources对象则是只会找本页面定义的资源。

03

Resources.resx文件

    在项目的Properties下展开可以找到这个文件:

ff88d78117f11885cf62661e644f6b4c.png

    双击打开后,是个列表,我们可以看到是个表格界面:

815ef92fd0d7c6a5f89691e53e68e50e.png

    左上角可以指定资源是string还是其它:

5761f35415f80163436a14cf79264bbc.png

    默认情况下,该文件的访问级别(Access Modifier)是Internal,也就是在代码中可以访问,一般来说,应该改为Pubilc,这样在Xaml中也可以访问。

    在代码中获取该资源如下:

ec37c672e4d5c371a8943d1accaa2309.png

    在Xaml中获取该资源如下:0c1fffcea785f7df037b832aaf4a5354.png

    在.NET 5版本中,默认去掉了Properties这个文件夹,但如果需要的话我们依然可以通过手动为项目添加Resources.resx文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值