zoukankan      html  css  js  c++  java
  • WP修改ProgressBar的前景色

    重载默认主题中的值,修改ProgressBar的前景色

        做一个小项目时,用到 ProgressBar添加一个加载效果,但是背景不是白色的,调试时发现自己选的主题色与背景色相近,特别不清晰,加载效果几乎看不见,于是就要修改ProgressBar的前景色,在修改的过程中,发现直接修改 Foreground和定义Background没有效果,没什么用,ProgressBar的前景色是你选择的主题颜色,既然知道了主题色就是ProgressBar的颜色,接下来就是重载主题色,简单来说就是在项目中重新定义一个颜色,覆盖掉主题色,其实就是定义一个与系统资源字典中相同的样式,覆盖掉系统定义即可。 其他的需要重载默认主题中样式的做法与此类似

    1. 在某个页面中重载
    2. 在整个项目中重载
      1. 在App.xaml中重载
      2. 在自定义的资源字典中重载,需要将自定义的资源字典添加到

    这里只讲解最后一个,在自定义的资源字典中重载,其实都差不多,不过个人觉得,这种方式更常用。

    首先创建一个资源字典文件,然后再其中添加对系统主题色的重载(这里只是重载的ProgressBar的Foreground属性,即ProgressBar的颜色)

    <!-- Global Overrides -->

    <ResourceDictionary.ThemeDictionaries>

    <ResourceDictionary x:Key="Default">

    <x:String x:Key="ProgressBarIndeterminateForegroundThemeBrush">Pink</x:String>

    </ResourceDictionary>

    </ResourceDictionary.ThemeDictionaries>

    注:这里的颜色不能随意设置,需要设置为主题色中有的颜色之一,最初设置的White 白色,结果没有任何效果

    如果在App.xaml文件中或在页面中定义的话,添加以上代码就够了,如果在自定义资源字典文件中定义的话,需要在App.xaml文件中包含自定义的资源字典文件,在App.xaml文件添加以下代码即可 (source需要设置为自定义资源字典文件的路径)

    <ResourceDictionary>

    <ResourceDictionary.MergedDictionaries>

    <ResourceDictionary Source="/Styles/CustomStyles.xaml"></ResourceDictionary>

    </ResourceDictionary.MergedDictionaries>

    </ResourceDictionary>

  • 相关阅读:
    .NET平台下WEB应用程序的部署(安装数据库和自动配置)(转)
    关于动网 ASP + Access 论坛问题及相应解决办法
    Visual 2005 调试问题 收藏
    休假一个月
    Log4j进行日志操作
    自动定时备份数据
    最近很有心情
    网站建设尺寸规范
    log4net 1.2.9 的配置及使用
    DataGrid表头跨行合并的实现
  • 原文地址:https://www.cnblogs.com/weihanli/p/overrideThemeStyles.html
Copyright © 2011-2022 走看看