WPF编程宝典读书笔记——第10章 资源(一)
2016-07-24 19:33
323 查看
一、概述
WPF资源系统是一种保管一系列有用对象的简单方法,通过次方法可以很容易的重用这些对象。它可以保管的对象可以是画刷、样式或模版等。
既可以通过代码的方式创建和操作资源,但通常是在XAML标记中定义资源。
资源具有以下优点:
(1)高效:一处定义,多处使用,避免重复编码。
(2)可维护性:在XAML中创建资源就相当于在代码中创建常量。
(3)适应性:一旦将特定的信息与应用程序的其它部分分离开来,并且放置到资源中,就可以动态修改这些信息。
二、资源集合
(1)每个元素都有Resources属性,该属性存储了一个资源字典集合,该资源字典集合可以包含任意类型的对象。
(2)尽管每个元素都有Resources属性,但通常在窗口级别定义资源,这是因为每个元素不仅可以访问各自资源集合中的资源,同时也可以访问所有父元素集合中的资源。
(3)在同一个资源集合中资源的名字不能重复,不同资源集合中名字可以相同。
(4)调用XAML标记中的资源有两种方法:静态调用资源 动态调用资源
三、实例演示
本实例演示了资源的定义、静态调用、动态调用。在XAML语法上可通过元素特性的标记扩展完成调用或通过元素语法完成调用。
(1)创建项目
(2)删除自动创建的Grid对象,如果电脑显示屏足够宽的话建议将视图切换为左右视图
(3)添加图片文件
(4)编写XAML代码
采用元素语法调用,输入StaticResource或DynamicResource时,VS不能够给出智能提示,此时不要认为输入错误。
(5)显示效果
(6)代码源码下载地址
ResourcesTest001
WPF资源系统是一种保管一系列有用对象的简单方法,通过次方法可以很容易的重用这些对象。它可以保管的对象可以是画刷、样式或模版等。
既可以通过代码的方式创建和操作资源,但通常是在XAML标记中定义资源。
资源具有以下优点:
(1)高效:一处定义,多处使用,避免重复编码。
(2)可维护性:在XAML中创建资源就相当于在代码中创建常量。
(3)适应性:一旦将特定的信息与应用程序的其它部分分离开来,并且放置到资源中,就可以动态修改这些信息。
二、资源集合
(1)每个元素都有Resources属性,该属性存储了一个资源字典集合,该资源字典集合可以包含任意类型的对象。
(2)尽管每个元素都有Resources属性,但通常在窗口级别定义资源,这是因为每个元素不仅可以访问各自资源集合中的资源,同时也可以访问所有父元素集合中的资源。
(3)在同一个资源集合中资源的名字不能重复,不同资源集合中名字可以相同。
(4)调用XAML标记中的资源有两种方法:静态调用资源 动态调用资源
三、实例演示
本实例演示了资源的定义、静态调用、动态调用。在XAML语法上可通过元素特性的标记扩展完成调用或通过元素语法完成调用。
(1)创建项目
(2)删除自动创建的Grid对象,如果电脑显示屏足够宽的话建议将视图切换为左右视图
(3)添加图片文件
(4)编写XAML代码
采用元素语法调用,输入StaticResource或DynamicResource时,VS不能够给出智能提示,此时不要认为输入错误。
<Window x:Class="ResourcesTest001.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:ResourcesTest001" mc:Ignorable="d" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <ImageBrush x:Key="TileBrush" TileMode="Tile" Opacity="0.3" ImageSource="happyface.jpg" Viewport="0,0,32,32" ViewportUnits="Absolute"> </ImageBrush> </Window.Resources> <StackPanel> <Button x:Name="btn1" Content="A Tiled Button 1" Margin="5" Padding="5" FontWeight="Bold" FontSize="14" Background="{StaticResource TileBrush}"><!--通过特性:静态调用--> </Button> <Button x:Name="btn2" Content="A Tiled Button 2" Margin="5" Padding="5" FontWeight="Bold" FontSize="14" Background="{DynamicResource TileBrush}"><!--通过特性:动态调用--> </Button> <Button x:Name="btn3" Content="A Tiled Button 3" Margin="5" Padding="5" FontWeight="Bold" FontSize="14"> <Button.Background> <StaticResource ResourceKey="TileBrush"/><!--通过元素语法:静态调用--> </Button.Background> </Button> <Button x:Name="btn4" Content="A Tiled Button 4" Margin="5" Padding="5" FontWeight="Bold" FontSize="14"> <Button.Background> <DynamicResource ResourceKey="TileBrush"/> <!--通过元素语法:动态调用--> </Button.Background> </Button> </StackPanel> </Window>
(5)显示效果
(6)代码源码下载地址
ResourcesTest001
相关文章推荐
- 自学成才的秘密:115个 web Develop 资源
- C#及WPF获取本机所有字体和颜色的方法
- WPF MVVM示例讲解
- WPF实现时钟特效
- PowerShell中调用WPF生成炫酷窗口实例
- WPF实现类似360安全卫士界面的程序源码分享
- C#中WPF使用多线程调用窗体组件的方法
- WPF自动隐藏的消息框的实例代码
- WPF弹出自定义窗口的方法
- WPF实现渐变淡入淡出的登陆窗口效果
- C#中使用资源的方法分析
- WPF的数据绑定详细介绍
- Shell脚本实现Linux系统和进程资源监控
- WPF绑定实例详解
- 关于WPF使用MultiConverter控制Button状态的详细介绍
- Android资源命名规范 分享
- C#使用Dispose模式实现手动对资源的释放
- 如何搭建新的WPF项目框架
- 超炫酷的WPF实现Loading控件效果
- 在WPF中动态加载XAML中的控件实例代码