您的位置:首页 > 编程语言

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不能够给出智能提示,此时不要认为输入错误。

<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  WPF 资源