WP8中引用资源字典

  当我们定义的样式太多的时候,我们可以把样式分别定义在不同的文件中,然后通过 MergedDictionaries 应用到其他资源字典中,看下面Demo

  我们可以把样式定义在多个文件中,然后再App.xaml中引用

我们先定义三个文件

  1、蓝色按钮资源文件,定义按钮的Foreground为Blue

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style TargetType="Button">
<Setter Property="Foreground" Value="Blue"></Setter>
</Style> </ResourceDictionary>

BlueButtonResource.xaml

  2、红色按钮资源文件,定义按钮的Foreground为Red

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style TargetType="Button">
<Setter Property="Foreground" Value="Red"></Setter>
</Style> </ResourceDictionary>

RedButtonResource.xaml

  3、全局资源文件(在App.xaml引用),这里只定义TextBlock为Teal

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Teal"></Setter>
</Style> </ResourceDictionary>

GlobalResourceDictionary.xaml

然后再App.xaml全局引用全局资源文件

    <!--应用程序资源-->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!--这里引用其他文件,当然,也可以设置多个ResourceDictionary-->
<ResourceDictionary Source="GlobalResourceDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries> <!--这里定义其他样式-->
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Teal"></Setter>
</Style> <Style TargetType="Rectangle">
<Setter Property="Fill" Value="{StaticResource PhoneAccentBrush}"></Setter>
</Style>
</ResourceDictionary>
</Application.Resources>

前面蓝色和红色按钮的两个资源文件,可以用来当成不同的主题,我们可以在代码中动态加载

            ResourceDictionary resourceDictionary = new ResourceDictionary();
//这里的Uri格式:/解决方案;component/资源文件路径
Application.LoadComponent(resourceDictionary, new Uri("/LoadResourceDictionary;component/BlueButtonResource.xaml", UriKind.Relative));
Application.Current.Resources.MergedDictionaries.Add(resourceDictionary);

【WP8】ResourceDictionary的更多相关文章

  1. 【WP8】WebBrowser相关

    2014年09月02日更新 今天用了一下WebBrowser,在使用过程中也遇到了一些问题,在这里做一下记录 虽然WebBrowser比较重,会比较影响性能(除非一定要用到它,否则尽量少用),但有时候 ...

  2. 【WP8】线程安全的StorageHelper

    14-08-29 12:32更新:修复StorageHelper部分bug WP8以后提供了StorageFile的方式访问文件,StorageFile对文件的操作只提供了异步的支持,包括WP8.1 ...

  3. 【WP8】换肤功能的实现

    主题功能在移动开发中是最常见的功能之一,用的最多的是日间模式和夜间模式的切换,下面说说如何在WP上使用主题,不同主题的差别无非就是两种(颜色和图片),在WP上我们通常使用资源来设置颜色,系统提供了两种 ...

  4. 【WP8】让TextBox文本支持滑动(Scroll)

    通过修改样式让TextBox支持文本滑动 在Silverlight上,TextBox是有文本滚动的功能的,当TextBox的文本过长时,可以进行拖动的,TextBox使用 VerticalScroll ...

  5. 【WP8】自定义配置存储类

    之前在WP7升级到WP8的时候遇到配置不兼容的问题 情景:之前只有一个WP7版本,现在需要发布WP8版本,让用户可以从原来的WP7版本升级到WP8版本 一般情况下从WP7升级到WP8没什么问题 但是在 ...

  6. 【WP8】LoopingSelector

    WP8的WindowsPhoneToolkit工具包中有一个 LoopingSelector 可以想选择日期或时间一样进行选择 1.首先当然是引用WindowsPhoneToolkit 在Nuget控 ...

  7. 【WP8】为Webbrowser添加ScrollBar

    在WP8中,控件WebBrowser没有提供对滚动条的支持,而在内置的IE中,却可以显示出滚动条(微软这是在坑我们吗),但如果在客户端使用Webbrowser的话,自己构造ScrollBar来显示 通 ...

  8. 【WP8】Uri关联启动第三方App

    在WP8中支持启动第三方应用程序,比如在App1中可以打开App2,你可以在你的应用程序中直接打开QQ,也可以让其他开发者调用你的APP,例如:软件盒子 下面演示被调用方和调用方的使用方法,新建两个项 ...

  9. 【WP8】WP8调用官方API使用LED灯

    在WP7中没有相关的API可以直接使用摄像头的LED等,只能通过录像时打开LED等来使用,在WP8中添加了相关的调用接口,可以方便的使用LED灯,并且支持后台,废话不多说,直接上代码 1.在 WMAp ...

随机推荐

  1. JAVA-JSP内置对象之session对象设置并获得session生命周期

    相关资料:<21天学通Java Web开发> session对象设置并获得session生命周期1.通过session对象的setMaxInactiveInterval()方法可以设置se ...

  2. 基于jQuery仿去哪儿城市选择代码

    基于jQuery仿去哪儿城市选择代码.这是一款使用的jQuery城市选择特效代码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="lin ...

  3. C# 中的await

    今天看代码遇到了很多await,梳理一下await的用法. await只针对awaitable对象,经常和Task一起使用,主要用法如下: var task = RunAsync(); //开始执行异 ...

  4. SpringMVC REST 风格静态资源访问配置

    1 在web.xml中使用默认servlet处理静态资源,缺点是如果静态资源过多,则配置量会比较大,一旦有遗漏,则会造成资源无法正常显示或404错误. <!-- 静态资源访问控制 --> ...

  5. ASP.NET MVC分页 Ajax+JsRender

    前段时间整mvc的分页,倒是很顺利,参考了以下几篇博客,启发很大. http://www.cnblogs.com/tangmingjun/archive/2012/05/30/2526301.html ...

  6. border-radius背景色超出圆角问题解决

    span{ display: block; background: #f4f4f4; color: #333; font-size: 14px; -webkit-border-radius: 20px ...

  7. java 、HashMap 和单例

    前段时间在项目中遇到一个问题.当多个系统同时运行时,大部分系统能够良好运转,部分却卡死在了启动界面.以下是我解决该问题的步骤和总结:   1.复现问题.重新走了一遍出问题的过程,发现问题的确存在.说明 ...

  8. 微信小程序——收起和查看更多功能

    项目中做一些列表的时候,可能会需要做到 查看更多 及 收起功能,如下图所示: 大概的需求就是默认只显示2条,点击[查看更多]显示全部,点击[收起]还原. 实现的方法千万种.我来讲一下我的实现思路: 1 ...

  9. node学习笔记7——npm安装包

    npm:Nodejs Package Manager(Nodejs包管理器).它有什么作用呢? 1.包统一下载途径: 2.自动下载依赖. 如何安装呢? 命令:npm install *** 比如我们要 ...

  10. 引入css少引入了rel="stylesheet" 这行代码。导致整个页面空白、

    忘记引入rel="stylesheet" 如下: <link  href="css/swiper-3.3.1.min.css" /> 这样使得整个页 ...