WPF-深入浅出笔记(三)-资源

1.资源

f707f64df6af4cf5b67fec03a71ce724.png

 2.WPF对象级资源的定义与查找

2.1 资源的定义

每个WPF的界面元素都有一个名为Resource的属性,其类型为ResourceDictionary。ResourceDictionary能够以“键-值”对的形式存储资源。需要用到某个资源,就可以根据“键-值”对索引到资源对象。

15e69fdfc856490e92d713e57a63bb13.png

fab95fa2d1434a67b1de93cb5d96aa57.png 9c9df37d0d364e4e85a426228c08b42e.png

检索资源时,会按照下面的方式进行:

4d0ae7f5aeb94e459b811dfcf17a6062.png625e861510cb43f5a53c1672915edda9.png2.2 资源地查找

1. C#中使用FindResource来查找在XAML里定义的x:Key的值

8d2c2fb5a655402098ce2b3b2f5ee815.png

2. 当把资源统一放在一个独立的xaml文件里时,窗口要想用这个xaml文件可以在窗口的Window.Resources中用,如下:

//Source是同一项目下的Model文件夹中的ResFile.xaml
<Window.Resources>
<ResourceDictionary Source = "../Model/ResFile.xaml"/>
</Window.Resources>

f2920a9333e64912b5f5ec9c8f3bc9c6.png

 5791717b1fb64f189af0433a4b42af0b.png

 3.“动“和”静“资源

 静态资源(StaticResource): 程序运行起来后只对这个资源使用一次(程序第一次加载初始化的时候使用一次),之后就不访问它了。

动态资源(DynamicResource):程序运行过程中仍然会去访问这个资源。

 8893fc4e2df54e6fbba767218039dea5.png

 4.向程序添加二进制资源

在项目中有Properties,打开之后会看到Resources.resx文件,如果要添加的资源是字符串而非文件(图标,图片,音频,视频都不可以用),可以使用Resources.resx文件添加,为了方便访问,Resources.resx的访问级别改成public,在XAML窗口中可以用x:Static来访问这些字符串

9b51f21e93b14327b81d5c6c04013999.png

223476e3d34f4138a2a33cb7807142a3.png

 c8299432b930453487e15ef236a3ae8b.png

 41a50bc9683e46feaeefeb17d6ad238e.png5.使用Pack URI路径访问二进制资源

单个文件可以直接用Source = "../Model/ResFile.xaml",但是如果在一个窗口的Windows.Resources中要引用多个xaml文件,可以用pack://的方法引用

//引用多个xaml文件
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application,.../ResFolder/buttonstyle.xaml"/>
                <ResourceDictionary Source="pack://application,.../ResFolder/buttonstyle1.xaml"/>
                <ResourceDictionary Source="pack://application,.../ResFolder/buttonstyle2.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>

2b84418566264593927883ec85168ad3.png

2b20b4cb267a4e26a27321d47812c371.png

 c26c29e4cbc549f9acaf5ad3deb091a0.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值