Windows Phone 8.1中如何重载系统默认资源

在应用设计过程中,我们总是设计好应用各块的布局和颜色的分配。当然这只是我们的一厢情愿,当我们真正开始

CD的时候,这才发现预想总是很美好的,实际操作起来确实有些难度。当然对于经验老道的程序员来说,这点阻碍

并不算什么。

正如题目所说,微软已经给我们设置了各种各样的系统默认资源,特别在是对于控件的一些属性,有的时候我们可以

直接定义属性来覆盖掉,而有的时候我们定义了属性依然毫无作用,这个时候我们就需要重载它的默认主题值。

好了,上面废话一大堆,下面就让我们来看看到底有多少默认的主题资源:

这里以ProgressBar为例,因为对于这个控件,你一厢情愿的设置它的foreground和background值好像并不起作

用,它还是它,并不会那么乖就听你的命令。

首先在ProgressBar的设置选项卡中调出Foreground属性,点击它的设定选项,然后你会看到它提供给你多种设置的

方法,这里我们将鼠标移到系统资源上面。

你会发现会跳出很多很多的系统定义资源,上下滚动查看,乖乖,确实是蛮多的。所以说在今后如果不知道系统资源

定义的key值,你就可以这么做。

知道了系统默认资源以及如何查看,那么接下来就要重载它了。这里依旧是拿ProgressBar控件为例。

我要把ProgressBar的Foreground设置成Green,而这边我要重载的系统默认主题资源是

ProgressBarIndeterminateForegroundThemeBrush这个系统资源。当然如果你不知道具体是哪个,对于这个控件的

系统默认资源定义并不多,你可以一个一个试试,不行就去MSDN查一下具体是哪个也行。

步骤一:

在项目中新建一个资源字典,重载主题资源,如下:

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

    <ResourceDictionary.ThemeDictionaries>
        <ResourceDictionary x:Key="Default">
            <x:String x:Key="ProgressBarIndeterminateForegroundThemeBrush">Green</x:String>
        </ResourceDictionary>
    </ResourceDictionary.ThemeDictionaries>

</ResourceDictionary>

步骤二:

然后在App.xaml中包含这个资源字典,如下:

<Application
    x:Class="RedefineProgressBarColor.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:RedefineProgressBarColor">

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="RedefineDictionary.xaml"></ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

</Application>

步骤三:

在页面拖进来一个ProgressBar控件,运行一下就能发现它的Foreground变成了你设置的Green,而原来你如果不重

载这个系统资源属性,那么Foreground默认值就不一定是Green了。而如果你不重载,只是重复设置它的Foreground

值,那么它不会理会你,依然显示系统默认的资源属性。

以上就是本次博客的主要内容。这里要补充三点:

1.对于上述说法,有些人可能有一些疑问,你说系统默认主题的颜色到底是什么呢。很好,这个问题要这么

看,Foreground颜色(前景色)是和你的手机设置的主题色是一致的,而对于很多其他的控件,很多问题都是出在这个

手机主题色上面的。所以我们的手机主题色就是默认的主题色了,而因为每个人用手机的习惯不一样,所以为了应用

的统一性,这才需要我们自行设置。

具体如下截图所示:

              

2.上面对于样式资源的申明和绑定设置,只是其中的一种方法,还有其他很多种方法,这次博客中的样式属性设置是

对之前一篇博客的补充。

之前一篇博客:win8,win8.1应用中生成显示button和button背景图片的三,四种方法以及改变元素样式的四种方法

3.这里我没有设置ProgressBar的Background,一来大家可以具体自行尝试,举一反三;二来我认为毫无必要,因为

它本身应该是透明的,如果非要设置的话就会突出那一块颜色,毫无美感而言。

时间: 2024-11-01 12:32:28

Windows Phone 8.1中如何重载系统默认资源的相关文章

Windows Server 2008网络中顺畅访问“邻居”

通过网上邻居窗口寻找共享资源,是很多局域网用户经常要做的一项"功课",为了做好这项"功课",不少朋友积累和总结了不少网上邻居故障排除经验;然而这些经验在Windows Server 2008网络环境中,多数是没有多少用武之地的,毕竟Windows Server 2008系统是一种全新的工作环境,要想从Windows Server 2008网络中顺畅找到自己想要交往的"邻居",还需要总结新的网上邻居故障排除经验.为此,本文现在就对Windows S

如何在TFS中恢复系统默认查询&rdquo;已指派给我&rdquo;的设置(TFS 2013)

故事是这样开始的,一天开发人员求助说,在浏览器中修改了系统默认的工作项查询"已指派给我"的后,发现这个查询每次都提示超时,并且没有办法恢复到初始的设置状态,因为出现超时提示以后,查询编辑器就无法使用,如下图: 找遍了所有可以编辑工作项查询的工具,Visual Studio, Eclipse都没有看到可以编辑系统默认查询的功能.即使在浏览器中使用"另存为"的方法把"已指派给我"保存为另外一个查询,也无法恢复系统默认的状态.已经觉得自己黔驴技穷了,并

在windows 2003 sp2 或者 2008 rac环境中,可能会由于默认的SNP( Scalable Networking Pack)特性会导致 实例驱逐或者节点驱逐

在windows 2003 sp2 或者 windows 2008 rac环境中,可能会由于默认的SNP( Scalable Networking Pack)特性会导致 实例驱逐或者节点驱逐 参考原文: RAC on Windows: Recurring Instance and/or Node Evictions May Be Caused by Default SNP Features Available for Windows Server 2003 SP2 and 2008 (Doc I

Windows使用telnet远程登录和控制VMware虚拟机中的Linux系统

一.描述 在Windows7系统中安装VMware Workstation10,在该虚拟机中安装了CentOS6.5操作系统,当然这里可以是任意的Linux,目前主流的是使用SSH.SecureCRT或者Putty来登录和控制虚拟机中的Linux系统,但是如果我们在这里想直接使用windows自带的telnet服务远程登录Linux系统的话就要采用以下配置来搭建telnet桥梁. 二.配置步骤 第一步,虚拟机中的网络连接方式选用NAT或者hostonly都可以,我们这里使用NAT网络连接方式,达

windows平台在tomcat中启动cas报错解决

windows平台在tomcat中启动cas报错: Caused by: java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no jansi in java.library.path, 系统找不到指定的路径.] 解决办法:将jansi.dll文件放到C:\Windows\System32目录下即可. 注意:jansi.dll文件在使用gradle编译打包cas时会下载到C:\Users\${用户名}\.gradle

Win7系统的虚拟机中安装win7系统

今天因兼职需要,在家里的win7电脑上安装WIN7虚拟机. 之前在xp和win10系统的虚拟机中,安装各种版本的windows系统都很轻松,这一次居然折腾了很久都没搞定. 下载了好几个系统ios镜像都不行,最后查找别人的经验,发现是安装时设置有问题. 完整步骤如下: Vmware Workstation 12       链接:http://pan.baidu.com/s/1o850FhS 密码:6dpr Windows 7 X86/X64系统      网上下载ISO版系统 1. 打开Vmwa

Windows Server 2012 R2中通过IIS实现AD帐号密码修改功能

现在越来越多的企业会对AD帐号进行分类,例如将业务帐号.服务帐号同员工帐号分开管理,那么这类帐号也会因为业务应用特定类型而选择是否开启邮箱功能,再或者有些企业会采用腾讯企业邮箱或网易企业邮箱等等,这些平台本身同AD域是独立的,而且很多企业又使用MAC系统或计算机根本不加域,这时企业内网要搭建OA.WIKI.JIRA等一些需要调用AD中的LDAP让员工登录的系统时,则面临后期密码到期后用户没有入口去修改密码的问题.那么在今天我就要给大家介绍的是如何利用Windows Server 2012 R2中

Windows下也可以使用osw追朔系统历史性能

1.Windows系统历史性能分析困难背景 在Linux/Unix上,要追朔历史性能,一般采用部署nmon进行性能监控采集与存储的方式实现,但是却没有在Windows上的版本. Windows系统如果要分析历史性能,一直是个老大难. 其实,ORACLE有一个监控工具叫OSWatcher的工具,不仅可以在Linux/Unix上使用,还可以在Windows上使用,叫OS Watcher For Windows (OSWFW),解决了Windows系统上历史性能不可查的问题. 2.OSWFW支持的Wi

怎样修复“Windows/System32/Config/System中文件丢失或损坏”故障

怎样修复“Windows/System32/Config/System中文件丢失或损坏”故障 英文原文引自 http://xphelpandsupport.mvps.org/how_do_i_repair_a_missing_or_cor1.htm 此类错误通常说明计算机由于注冊表的原因不能启动,下列操作应该可以修正以上错误.然而,须要特别注意的是,你须要将5个注冊表区域所有进行替换.仅仅简单的替换一个或者两个将会潜在的导致其它的错误 注意 假设你使用的是WindowsXP的OEM版本号,那么你