WPF编程宝典读书笔记——第10章 资源(一)

一、概述

        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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值