WPF资源字典使用

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

1.  创建资源字典

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


<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!--自定义按钮样式-->
<Style x:Key="myBtnStyleOne" TargetType="Button">
<Setter Property="FontFamily" Value="Arial"></Setter>
<Setter Property="Padding" Value="10"></Setter>
<Setter Property="Width" Value="100"></Setter>
<Setter Property="Height" Value="40"></Setter>
</Style>
<!--自定义渐变画笔-->
<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文件中进行集成。代码如下:


<Application x:Class="DataGridSolution.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">

<Application.Resources>

<!--集成资源-->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource/MyButtonStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

</Application.Resources>
</Application>

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

2.2  使用资源

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


        <Button Content="获取绑定数据"
Style="{StaticResource ResourceKey=myBtnStyleOne}"
Background="{StaticResource ResourceKey=fadeBrush}"
HorizontalAlignment="Left"
Margin="283,49,0,0" VerticalAlignment="Top"
/>

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

3.  总结:

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

a. 提供皮肤功能。

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

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

1.
创建资源字典文件  》 2. 资源字典集成 》  3. 使用字典中的资源

时间: 2024-10-16 16:02:32

WPF资源字典使用的相关文章

(WPF)资源字典

资源字典:资源字典出现的初衷就在于可以实现多个项目之间的共享资源,资源字典只是一个简单的XAML文档,                   该文档除了存储希望使用的资源之外,不做任何其它的事情. 资源字典的声明: <ResourceDictionary> <LinearGradientBrush x:Key="fadeBrush"> <GradientStop Color="Red" Offset="0"/>

[原创]WPF资源Binding自定义集合类。

简单介绍一下Wpf资源字典: 每个WPF界面元素都有一个名为Resource的属性,这个属性继承至FrameworkElement类,其类型为ResourceDictionary.ResourceDictionary能够以键值对的形式存储资源,当要使用到某个资源的时候,使用键值对的形式获取资源对象.在保存资源时,ResourceDictionary视资源对象为Object类型,所以再使用资源时先要对资源对象进行类型转换,XAML编译器能够根据Attribute自动识别资源类型,如果类型不对就会抛

WPF合并资源字典

1.合并多个外部资源字典成为本地字典 示例代码 <Page.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="myresourcedictionary1.xaml"/> <ResourceDictionary Source="myresourcedictionary2.xam

WPF使用资源字典组织资源

转载:http://blog.163.com/[email protected]/blog/static/371405262010111413321728/ 首先在解决方案资源管理器中添加一个或多个资源词典(资源字典),并向多个资源字典中添加对象资源信息.示例中新建了三个资源字典,并向资源字典中添加了对象资源,代码如下. 第一个资源字典:(第一个资源字典命名为MyDictionary1.xaml) <ResourceDictionary xmlns="http://schemas.micr

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

wpf多程序集之间共享资源字典--CLR名称空间未定义云云 分类: WPF 2012-10-28 10:57 1162人阅读 评论(0) 收藏 举报 以下介绍如何创建可用于在多个程序集之间共享的资源字典 1.新建Wpf自定义控件库,名称为MyContorlLib,项目资源结构图如下: 2.打开Themes文件夹中的Generic.xaml文件,在根元素中添加如下名称空间:xmlns:local="clr-namespace:MyContorlLib"因为待会儿要用到该名称空间下的一个类

WPF 精修篇 管理资源字典

原文:WPF 精修篇 管理资源字典 样式太多  每个界面可能需要全局的样式 有没有肯能 WPF 中的样式 像Asp.net中 的CSS一样管理那 有的 有资源字典 BurshDictionary <LinearGradientBrush x:Key="RectFill" EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="BurlyWood" O

【WPF学习】第三十五章 资源字典

原文:[WPF学习]第三十五章 资源字典 如果希望在多个项目之间共享资源,可创建资源字典.资源字典只是XAML文档,除了存储希望使用的资源外,不做其他任何事情. 一.创建资源字典 下面是一个资源字典示例,它包含一个资源: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/wi

WPF学习笔记-使用自定义资源字典(style)文件

1.添加资源字典文件style.xmal 2.在资源字典中添加自定义style等 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfTest.resources&

wpf 在引用外部的资源字典

启动的APP.xaml 资源字典: ScrollViewStyle.xaml 引用的界面的xaml <UserControl x:Class="FranceNews.Pages.点位.Views.FranceFilter" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/