WPF笔记 - 在WPF中使用可重用的资源字典

本文详细介绍了WPF中如何使用资源字典进行代码复用和全局配置。内容包括在当前项目中定义和引用资源字典,程序集间共享资源字典,以及如何在资源字典中声明样式Style,提高代码维护性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WPF中使用资源字典

  • xaml语言本质上就是在声明一个个类型的实例/对象, 在这个过程中会初始化实例部分的属性, 这些属性值可能也是一个复杂的类型需要用xaml声明一个很复杂的实例(可能会是一个庞大的xaml标签组成), 资源字典的本质就是事先声明封装好一系列实例对象(可能会是一个庞大的xaml标签组成), 供其他xaml调用(直接引用给属性赋值不需要再次声明), 从这个方面来说, 资源字典有点类似于全局变量(作用域由资源字典的位置决定).
  • 全局变量的好处是统一配置维护, 在xaml中还有另一个好处: 因为控件的某些属性是一个复杂的类型, 也需要用很多的xaml代码声明属性值, 这些用复杂庞大的xaml声明的属性值在很多控件中都需要频繁使用, 如果每次使用都声明一次就会很麻烦, 为了方便重用, 将这些属性的值先声明到资源字典中, 然后直接引用赋值给需要的控件属性
  • 资源字典中声明好的实例对象可以给所有的控件合适的属性赋值(属性和属性值的类型要相同), 例如Button有一个Template属性, 它属于ControlTemplate类型, 那么你就应该在资源字典中找一个ControlTemplate类型的实例赋值给当前这个ButtonTemplate属性

资源字典的基本用法

从整体上看, 使用模式跟使用一个字典变量的方式差不多, 先声明好资源字典, 在需要用的地方通过字典的键引用对应的值

在当前项目中使用资源字典

基本上所有的xaml元素都有资源Resources属性, 资源里面可以放一些东西, 比如资源字典就是其中一种, 拥有资源字典的元素本身和子元素都可以使用资源字典里面的项, 所以为了所有元素都可以使用, 可以在App.xaml中定义Application的资源Resources属性, 将资源字典放到里面去, 或者使用已经写好在单独文件中的资源字典, 在App.xaml中合并资源字典(如下:)

   <!--当前项目中创建资源字典文件: BasicDictionary.xaml-->
   <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ImageBrush x:Key="TileBrush1" ImageSource="4.jpg" ViewportUnits="Absolute" TileMode="Tile" Viewport="0 0 70 70" Opacity="0.5"/>
    <ImageBrush x:Key="TileBrush2" ImageSource="3.jpg" ViewportUnits="Absolute" TileMode="Tile" Viewport="0 0 70 70" Opacity="0.5"/>
   </ResourceDictionary>

   <!--App.xaml 合并资源, 声明字典来源-->
   <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值