WPF之资源

本文详细介绍了WPF中的资源,包括资源的概述、资源类型(如二进制资源和逻辑资源)及其引用方式(静态资源和动态资源)。重点讨论了资源字典的创建和使用,阐述了如何集成资源字典到应用程序中以及如何在项目间共享资源。
摘要由CSDN通过智能技术生成

前面已经用WPF的资源写过一篇习题,今天来看WPF资源具体都有哪些,以及如何对众多资源进行“管理”。

一、对于资源的概述

资源一经定义,就可以进行重复的使用。所以,WPF的资源用于保存可以重复利用的样式、对象定义以及传统的资源。
1.资源的定义
【例】定义一种复用的SolidColorBrush对象,再让按钮和文本框的背景及矩形的填充颜色均使用此SolidColorBrush对象。

//定义复用对象
<Window.Resources>
        <SolidColorBrush x:Key="goldBrush" Color="Gold"/>
    </Window.Resources>
//使用此对象
 <Button Margin="5" Content="Button with goldBrush" Background="{StaticResource goldBrush}"/>

2.资源的可用范围
WPF中,资源的定义位置,决定了该资源的可用范围。
(1)控件(对象)级:定义在控件上,作为其子容器、子控件共享的资源。
【例】定义Button上的资源,TextBlock是Button的子控件,调用Button资源。

<Button >
			//定义资源
            <Button.Resources>
                <SolidColorBrush x:Key="myYellowBrush" Color="Yellow" />
            </Button.Resources>
                //使用资源
                <TextBlock Text=" I am a Button.Contentt " Background="{StaticResource myYellowBrush}" />          
</Button>        

(2)窗体级:资源定义在Window或Page层级的XAML文档中,本窗体或页面的所有控件都可以使用,第一个例子就属于窗体级。
(3)应用程序级:资源定义在App.xaml中,资源可用到此应用程序内的任何地方。
【例】在App.xaml中定义SolidColorBrush。

//定义资源
<Application.Resources>
        <SolidColorBrush x:Key="myRedBrush" Color="Gold" />
    </Application.Resources>
//使用资源
<StackPanel>
      <Button Margin="5" Content="I am a Button" Background="{StaticResource myRedBrush}"/>   
  </StackPanel> 

(4)字典级:众多资源封装成一个资源字典,定义到ResourceDictionary的XAML文件中,还可以被其他应用程序重复使用,在后面的资源字典中会着重介绍。

二、资源有哪些类型

资源的类型有两种,一种是二进制资源,另一种是逻辑资源。接下来介绍在WPF中添加二进制资源及使用Pack URI路径访问二进制资源的方法。
1.添加二进制资源
当添加字符串资源,使用应用程序Properties名称空间下的资源文件(Resources.resx)。
运行机制:
编译后,Resources.resx生成Properties名称空间下的Resources类,使用该类的方法或是属性就能获得资源。
注意:
1)XAML编译器要访问这个类,需将默认的Resources.resx访问级别由Internal改为Public。
2)在XAML代码中使用Resources.resx中的资源,要将程序中的Properties名称空间映射为XAML的名称空间,再使用x:Static标签扩展来访问资源。
在这里插入图片描述【例】添加两个名称分别是passWord和userName的条目,在XAML代码和CS代码中访问它们。

<Window x:Class="BinaryResource.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        //重要代码
        xmlns:prop="clr-namespace:BinaryResource .Properties" 
        
        Title="MainWindow" Height="350" Width="525">
<Grid>
//重要代码
<TextBlock x:Name="loginNameTextBlock" Text="{x:Static prop:Resources.LoginName }"/>

<TextBlock x:Name="passWordTextBlock
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值