WPF资源字典使用

转载 2013年12月03日 11:14:50

资源字典出现的初衷就在于可以实现多个项目之间的共享资源,资源字典只是一个简单的XAML文档,该文档除了存储希望使用的资源之外,不做任何其它的事情。

 

1.  创建资源字典

      创建资源字典的过程比较简单,只是将需要使用的资源全都包含在一个xaml文件之中即可。如下面的例子(文件名test.xaml,与后面的app.xaml文件中的内容相对应):

复制代码
<?xml version="1.0" encoding="utf-8"?>

<!--This file is auto generated by XDraw.-->

<!--Do not modify this file directly, or your changes will be overwritten.-->

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <LinearGradientBrush x:Key="FadeBrush">

       <GradientStop Color="Red" Offset="0"/>

       <GradientStop Color="Gray" Offset="1"/>

    </LinearGradientBrush>

</ResourceDictionary>
复制代码

     说明:在创建资源的时候要确保资源文件的编译选项为page,这样就能够保证XAML资源文件最终能够编译为baml文件。但是如果设置为Resource也是一个不错的选择,这样它能够嵌入到程序集中,但是不被编译,当然其解析的速度回稍微慢一点。

 

2.  使用资源字典

2.1  集成资源

     要是用资源字典,首先要将资源字典集成到应用程序的某些资源集合中。一般的做法都是在app.xaml文件中进行集成。代码如下:

复制代码
        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

                <ResourceDictionary Source="Test.xaml"/>

            </ResourceDictionary.MergedDictionaries>

        </ResourceDictionary>
复制代码

     说明:上面的标记通过明确地创建一个ResourceDictionary对象进行工作,资源集合总是ResourceDictionary对象。但是这只是需要明确指定细节从而可以设定ResourceDictionary.MergedDictionaries属性的一种情况。如果没有这个步骤ResourceDictionary.MergedDictionaries属性将为空。ResourceDictionary.MergedDictionaries属性是一个ResourceDictionary对象的集合,可以使用这个集合提供自己需要使用的资源的集合。也就是说如果需要某个资源,只需要将与该资源相关的xaml文件。添加到这个属性中即可。如上面添加test.xaml一样。

 

2.2  使用资源

     集成之后就可以在当前的工程中使用这些资源了。使用方法如下:

复制代码
<Window x:Class="HelloWpf.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MainWindow" Height="340" Width="406" WindowStartupLocation="CenterScreen"

        Icon="SC.ico" >

    

    <Grid Height="304" Width="374">

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="*"/>

        </Grid.RowDefinitions>

 

        <Button Margin="121,30,107,230" Grid.Row="2" Click="Button_Click"  Background="{StaticResource FadeBrush}">

        </Button>

    </Grid>

</Window>
复制代码

     使用资源的方法比较简单只需要使用StaticResource 关键字去添加即可。

 

3.  总结:

     使用资源字典的主要原因有两个:

    a. 提供皮肤功能。

    b. 存储需要被本地话的内容(错误消息字符串等,实现软编码)

     使用过程也比较简单,归纳起来主要有下面几个步骤:

    1. 创建资源字典文件

    2. 资源字典集成

    3. 使用字典中的资源

相关文章推荐

wpf使用资源字典组织资源

如果希望在多个项目之间共享资源,可以创建一个资源字典。资源字典是一个存储希望使用的资源的XAML文档。下面是一个资源字典的示例,Dictionary1.xaml: http://schemas.mi...
  • cnwpf
  • cnwpf
  • 2012-05-01 17:00
  • 3222

WPF 资源字典样式引用导致的DependencyProperty.UnsetValue

当样式直接在布局中没问题,但是抽出到单独的资源字典中就报DependencyProperty.UnsetValue错误时,确认没有其他问题时,可以查一下你的新字典是不是依赖了其他字典,并且你的新字典导...

WPF学习笔记(5):合并资源字典

.        合并多个外部资源字典成为本地字典 语言 XAML 示例代码            ...
  • licher
  • licher
  • 2009-05-15 10:46
  • 4785

WPF之资源字典

最近在看wpf相关东西,虽然有过两年的wpf方面的开发经验,但是当时开发的时候,许多东西一知半解,至今都是模模糊糊,框架基本是别人搭建,自己也就照着模板写写,现在许多东西慢慢的理解了,回顾以前的若干记...

WPF 界面实现多语言支持 中英文切换 动态加载资源字典

1、使用资源字典,首先新建两个字典文件en-us.xaml、zh-cn.xaml。定义中英文的字符串在这里面【注意:添加xmlns:s="clr-namespace:System;assembly=m...

WPF学习之资源-Resources

WPF通过资源来保存一些可以被重复利用的样式,对象定义以及一些传统的资源如二进制数据,图片等等,而在其支持上也更能体现出这些资源定义的优越性。比如通过ResourceDictionary的支持就可以通...

wpf多程序集之间共享资源字典--CLR名称空间未定义云云

以下介绍如何创建可用于在多个程序集之间共享的资源字典 1.新建Wpf自定义控件库,名称为MyContorlLib,项目资源结构图如下: 2.打开Themes文件夹中的Generic.xaml文...

WPF的资源

WPF的资源有两种,一种称为“程序集资源”( assembly resources)或者“二进制资源”(binary resources),在MSDN中将其称为“应用程序数据文件”(applicati...

wpf 资源字典小例子

  • 2015-09-22 22:49
  • 18KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)