资源

对象级资源:每个WPF的界面元素都有一个名为Resources的属性,这个属性继承自FrameworkElement类,其类型为ResourceDictionary,采用键值对的形式存储资源,当需要某个资源时,使用键值的形式索引到资源。资源保存时为object类型,所以在使用时先要对资源对象进行类型转换,XAML编译器能够根据标签的特性自动识别资源类型,但是在C#代码中,就需要通过代码我们自己实现转换。

<Window x:Class="CommandDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="Auto" Width="Auto" SizeToContent="WidthAndHeight">
<Window.Resources>
<ResourceDictionary>
<sys:String x:Key="str" >你好啊,代码</sys:String>
</ResourceDictionary>
</Window.Resources>
<Grid>
<StackPanel Width="300" Name="stackPanel">
<Button x:Name="button1" Margin="5" Content="Send Command"/>
<TextBox x:Name="txtbox1" Margin="5" Height="100" Text="{StaticResource str}"/>
</StackPanel>
</Grid>
</Window>
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//查找指定资源,没有的话就会沿着元素树向上一级控件查找,如果连顶层的也没有,就会查找Application.Resources中进行查找,如果还是没有找到,就会抛异常
string str = (string)this.FindResource("str");
System.Console.WriteLine(str); //明确地知道资源放在了哪个资源字典中,就可以直接检索
string str2 = (string)this.Resources["str"];
System.Console.WriteLine(str2);
}

动态资源,是指在程序运行过程中任然会去访问资源

静态资源,程序载入内存时,对资源一次性的使用,之后就不再去访问资源了,显然是在程序初始化时使用一次,之后就不再改变了。

程序集资源(二进制资源):为了不把资源字典里的资源和应用程序内嵌的资源混淆,我们明确应用程序内嵌资源为程序集资源或者二进制资源,称资源字典里的资源为WPF资源或者对象资源。

如果我们添加的资源时字符串而非文件,我们可以使用程序属性名称空间,Resources.resx文件,这个一般我们可以用作语言包。如果我们添加的资源时文件,我们则将文件直接拷贝到工程文件的文件夹中,然后设置文件的属性为:

如果不希望按照资源的方式访问外部文件,我们设置如下:

二进制资源的访问(Pack URL),格式如下:

pack://applicaiton,,,[/程序集名称;][可选版本号;][文件夹名称/]文件名称

或者直接简化成

[文件夹名称/]文件名称

深入浅出WPF-10.Resource(资源)的更多相关文章

  1. 《深入浅出WPF》笔记——资源篇

    原文:<深入浅出WPF>笔记--资源篇 前面的记录有的地方已经用到了资源,本文就来详细的记录一下WPF中的资源.我们平时的“资源”一词是指“资财之源”,是创造人类社会财富的源泉.在计算机程 ...

  2. [深入浅出Windows 10]QuickCharts图表控件库解析

    13.4 QuickCharts图表控件库解析     QuickCharts图表控件是Amcharts公司提供的一个开源的图表控件库,这个控件库支持WPF.Silverlight.和Windows等 ...

  3. 《深入浅出WPF》 学习笔记

    <深入浅出WPF> 序言 1. 什么是WPF    2. 为什么要学习WPF 第一章 XAML概览 1. XAML是什么? 2. XAML有哪些优点 第二章 从零起步认识XAML 1. 新 ...

  4. 【【分享】深入浅出WPF全系列教程及源码 】

    因为原书作者的一再要求,在此声明,本书中的部分内容引用了原书名为<深入浅出WPF>的部分内容,假设博文不能满足你现有的学习须要,能够购买正版图书! 本人10月份提出离职,可是交接非常慢,预 ...

  5. 《深入浅出WPF》笔记——绘画与动画

    <深入浅出WPF>笔记——绘画与动画   本篇将记录一下如何在WPF中绘画和设计动画,这方面一直都不是VS的强项,然而它有一套利器Blend:这方面也不是我的优势,幸好我有博客园,能记录一 ...

  6. 《深入浅出WPF》笔记——模板篇

    原文:<深入浅出WPF>笔记--模板篇 我们通常说的模板是用来参照的,同样在WPF中,模板是用来作为制作控件的参照. 一.认识模板 1.1WPF菜鸟看模板 前面的记录有提过,控件主要是算法 ...

  7. 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件

    [源码下载] 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件 作者 ...

  8. WPF整理-二进制资源和内容

    WPF中的Binary Resource(二进制资源)是相对于前面所说的Logical resource(逻辑资源)而说的,一般指Image.XML文件等. 注意:这里说的是Resource" ...

  9. 背水一战 Windows 10 (9) - 资源: 资源限定符概述, 资源限定符示例

    [源码下载] 背水一战 Windows 10 (9) - 资源: 资源限定符概述, 资源限定符示例 作者:webabcd 介绍背水一战 Windows 10 之 资源 资源限定符概述 资源限定符示例 ...

  10. 《深入浅出Windows 10通用应用开发》

        <深入浅出Windows 10通用应用开发>采用Windows 10的SDK进行重新改版,整合了<深入浅出Windows Phone 8.1应用开发>和<深入解析 ...

随机推荐

  1. 【小技巧】java的List分页

    今天,工作上,由于业务的一些特殊性,需要拿到数据后在java代码中进行分页. 写了一个工具类,记录如下: import java.util.ArrayList; import java.util.Li ...

  2. java基础路线与详细知识点

    点击下方打开文件查看 还在持续更新中.....

  3. 对集合使用Comparator

    1 import java.util.Comparator; 2 import java.util.PriorityQueue; 3 4 /** 5 * 对集合使用Comparator,不改变对象的自 ...

  4. [转载]getContentPane()

    关于setContentPane()和getContentPane()的应用       我们可以在 JFrame 对象中添加 AWT 或者 Swing 组件.但是,虽然它有 add 方法,却不能直接 ...

  5. kafka零数据丢失的配置方案

    讨论一下kafka参数的配置 1.acks 参数配置 acks这个参数有三个值:0,1,-1,但是不用的参数对应的含义不同,那如果我们想要保证数据不丢失,acks 值应该设置为哪个参数呢? 0:代表生 ...

  6. 刷题-力扣-122. 买卖股票的最佳时机 II

    122. 买卖股票的最佳时机 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell ...

  7. 根据经纬度查询最近距离,mysql查询经纬度附近范围

    public class Test{ private static List<LocalAddress> ilist = new ArrayList<LocalAddress> ...

  8. MutationObserver API

    1.概述 MutationObserver接口提供了监视对DOM树所做更改的能力.它被设计为旧的Mutation Events功能的替代品,该功能是DOM3 Events规范的一部分. 但是,它与Mu ...

  9. Python面向对象编程及内置方法

    在程序开发中,要设计一个类,通常需要满足以下三个要求: [1]类名 这类事物的名字,满足大驼峰命名法 [2]属性 这类事物具有什么样的特征 [3]方法 这类事物具有什么样的行为 定义简单的类: 定义只 ...

  10. tomcat配置启动不了

    关于ideatomcat配置问题 1.第一步配置tomcat启动器 2.配置启动的网址 3.配置启动器的启动 ---更多java学习,请见本人小博客:https://zhangjzm.gitee.io ...