WPF之资源(Resources)

c# xaml语言教程,c#学习之30分钟学会XAML 1.狂妄的WPF相对传统的Windows图形编程,需要做很多复杂的工作,引用许多不同的API。例如:WinForm(带控件表单)、GDI+(2D图形)、DirectX API(3D图形)以及流媒体和流文档等,都需要不同的API来构建应用程序。WPF就是看着上面的操作复杂和不爽,自己决定做老大,想用DirectX技术涵盖一切,于是想要将上述的东西全部融合到自身,减少复杂度,让编程变得爽起来的技术。而... 阅读详情
  1. 什么是资源:

资源是可以在应用程序的不同位置重用的对象。XAML资源的示例包括画笔和样式。每个框架级别的元素(FrameworkElement或FrameworkContentElement)都有一个resource属性,该属性包含资源定义的资源(作为ResourceDictionary)。可以在任何元素上定义资源,但是资源通常是在根元素上定义的。当在页面根元素上定义一个资源时,页面逻辑树中的所有元素都可以访问它,并且您可以重用相同的资源来设置接受该资源表示的类型的任何属性的值。

可以将资源引用为静态资源或动态资源。这可以通过使用StaticResource标记扩展或DynamicResource标记扩展来实现。通过替换已定义资源的值,StaticResource为属性提供了一个值,DynamicResource将属性值延迟为资源的运行时引用,从而为属性提供一个值。动态资源引用在每次访问此类资源并在运行时访问对象图时强制执行新的查找。为了获得这种访问,WPF属性系统中的依赖属性支持DynamicResource概念,并计算表达式。因此,只能对依赖项属性目标使用DynamicResource。

因此,资源的定义概括几点如下:

  1. 与传统WEB应用中CSS样式表类似
  2. 目的为了实现对象的重复使用
  3. 有助于XAML代码重用,有助于应用维护的一致性
  4. 定义资源的语法格式:

          <根元素对象.Resources>

               <资源定义>

          </根元素对象.Resources>

代码示例:

1

2

3

4

5

<Grid.Resources>

    <ImageBrush x:Key="imgBrush" Source="Images/bg01.png"/>

</Grid.Resources>

<!‐‐引用静态资源‐‐>

<Button Style="{StaticResource imgBrush}" Height="100"/>

       2. 资源字典(ResourceDictionary):

如果想用代码创建一个完整的WPF应用程序,可能还想用代码在该应用程序中创建任何资源。为此,创建一个新的ResourceDictionary实例,然后使用对ResourceDictionary. add .的连续调用将所有资源添加到字典中。然后,使用由此创建的ResourceDictionary在页面范围或Application.Resources中出现的元素上设置Resources属性。还可以将ResourceDictionary作为独立对象维护,而不需要将其添加到元素中。但是,如果您这样做,您必须按项目键访问其中的资源,就好像它是一个通用字典一样资源字典中的每个资源必须有一个惟一的键。在标记中定义资源时,通过x: key指令分配惟一的键。通常,键是字符串;但是,也可以通过使用适当的标记扩展将其设置为其他对象类型。定义资源之后,可以使用指定键名的资源标记扩展语法引用要用于属性值的资源

资源应用域不同,XAML资源可分为FrameworkElement.Resources和 Application.Resources:

  • FrameworkElement.Resources是将资源对象应用于同一个对象数的不同对象上,称之为页面资源,通常被定义在XAML页面根元素上。
  • Application.Resources是贯穿整个应用级别的资源,通常被定义在App.xaml页面 。

所有的资源项在最终都会被整合到Resource Dictionary中的,也就是说无论是FrameworkElement的Resources,还是Window的Resources,还是Application的Resources,还是特定的ResourceDictionary中定义的resources在整个应用编译执行的时候实际上他们都在一起的作为可遍历集合共同存在于一个相对会话空间内的。 我们也提到过Resource的key是可以被允许有相同的,这样在遍历不同相对地址的Resource Dictionary时会根据StaticResource或者DynamicResource的lookup behavior来确定哪个有效。通常为了维护和灵活性的考虑,我们通常会将Resource Dictionary文件分成好几个,但在某些场合下我们只需要用其中某些资源,那么我么可以将资源从几个独立的文件中提取并合并。部分App.xaml页面的代码如下:

1

2

3

4

5

6

7

8

 

<Application.Resources>

    <ResourceDictionary>

        <ResourceDictionary.MergedDictionaries>

            <!‐‐引用静态资源‐‐>

            <ResourceDictionary Source="Dictionary.xaml">

        </ResourceDictionary.MergedDictionaries>

    </ResourceDictionary>

</Application.Resources>

 

WPF资源 一、 窗口资源 1、窗口资源(也称页面资源 页面上是可以定义资源的,而资源是标签里面的属性写法。) 把已经调用命名空间里面的东西放到资源里面; Window.Resources:就是页面级别的资源,而定义的资源只是页面级别的,其他页面都是不可以使用的,只是适用于当前的Window页面。 2、ObjectDataProvider标签提供了绑定任意.net类型的功能,增加了对成员函数的绑定,提供了更多的异步绑定的功能 。(可称为动态函数,静态资源的绑定) (1)异步绑定的函数:通过 x:Key 属性给函 阅读详情

相关推荐

WPF - Resources资源解析

WPF中的资源:文本、对象、图片、音频、视频、样式、模板和主题等都是资源WPF资源分为程序资源(二进制资源)和对象资源。 程序资源:将外部文件编译进应用程序,也称为二进制资源,即Application.Resources。 对象资源:存储在UI元素的Resources属性中,通过Key=Value的方式进行存储和访问资源。对象资源支持子元素共享资源。 如何使用程序

Veechange的博客 4284

java打印语句输出xxxxxl19was.was

如果想要一次性直接输出打印语句,可以直接System.out.println("xxxxxl19was.was"),Java打印输出下一次敲so直接回车就会默认sout;选择souf的效果是printf,也是如此。 数据库创建表xxxxxl19was.was

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 12万+

C# WinForm/WPF项目发布后图片丢失?用对Resources资源文件一招解决

本文详细解析了C# WinForm/WPF项目发布后图片丢失的常见问题,重点介绍了如何正确配置Resources资源文件以确保资源在发布后正常显示。通过设置正确的生成操作属性、使用Properties.Resources类访问资源以及发布前的检查清单,开发者可以有效避免资源丢失问题,提升应用程序的可靠性。

weixin_30437847的博客 356

WPF资源字典

所谓资源字典也就是,我们通常做一些用WPF做一些练手项目的时候,常用的资源,主要是改变控件样式的作用和程序应用等功能。下面就来讲解一下有哪些资源字典。 首先:资源的分类在XAML资源中,XAML是一种可扩展程序的一种标记语言。也是 .NET Framework 的一部分。主要部分组成:引擎和编程架构。 在WPF应用程序中,主要分为动态资源(DynamicResoure)和静态资源(StaticResoure); 而在Window8应用中,XAML就只是支持静态资源资源应用的地方不同,又可以分为

迷麟的博客 2001

爱爱爱爱哎你遗忘你

http://www.eduol.cn/blog-554106-173439.html http://www.eduol.cn/blog-554106-173661.html http://www.eduol.cn/blog-554106-174065.html http://www.eduol.cn/blog-554106-174430.html http

u011971567的专栏 3万+

WPF 的另类资源方式 Resources.resx

类似Winform的搞法,可以把资源放到Resources.resx中。   1.字符串 打开这个编辑器后,输入Name和Value就可以了。 CS代码里面,很简单的调用: var title = WpfResource2.Properties.Resources.IDS_TEST_TITLE; 如果要用在XAML中,需要把Access Modifier改为public,原来是In...

weixin_33674437的博客 373

WPF学习一:XAML的资源(Resources)结构

一个初学者,把知识做个积累,如果有不对的地方,还请高手指出,谢谢! 先看一段代码:(下面是以Window WPF进行讲解,如果是Web 的话就把<Window改为<Page 而如果是 UserControl 的话,就改成<UserControl ...) <Window x:Class="brush.Window1" xmlns="http://schemas.m...

weixin_30662849的博客 295

WPF-后端对Icon赋Resources资源中的值

登录后复制 Stream iconStream = Application.GetResourceStream(new Uri("pack://application:,,,/TestApp;component/Resources/Test.ico")).Stream; WindowsNotifyIcon.Icon = ...

weixin_40390468的博客 131

Wpf资源-Resources

wpf页面布局时有可能会使用大多数相同的代码,为了省时又省力,这时就出现了一个叫资源的词。 那么资源是什么有什么用呢?资源—它与传统WEB应用中的CSS样式极为相似,但它的目的是为了实现对象的重复使用,有助于XAML代码的重用,有助于应用维护的一致性。其中它定义资源的语法格式为: <根元素对象:Resources> <资源定义> </根元素对象:Resources> 举个栗子,比如我要重新定义一下Butt...

化学纤维 426

WPF学习之资源-Resources

WPF通过资源来保存一些可以被重复利用的样式,对象定义以及一些传统的资源如二进制数据,图片等等,而在其支持上也更能体现出这些资源定义的优越性。比如通过ResourceDictionary的支持就可以通过资源来实现换肤功能,在ExpressionBlend中设计的酷炫造型也可以通过导出成资源来很容易的被程序员所引用,本地化的实现,访问另外程序集的嵌入式资源等等。这些都给我们提供...

291

WPF初学者之XAML的资源(Resources)结构

<br />先看一段代码:(下面是以Window WPF进行讲解,如果是Web 的话就把<Window改为<Page 而如果是 UserControl 的话,就改成<UserControl ... )<Window x:Class="brush.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

sam1012的专栏 2110
上一篇: WPF之标记扩展
下一篇: WPF用关键帧制作动画
御弟
博客等级 码龄8年 22粉丝 35原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值