zoukankan      html  css  js  c++  java
  • 【WP8】ResourceDictionary

    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);

  • 相关阅读:
    员工年龄排序之桶排序
    滑动窗口中最大值
    开机自动启动Tomcat
    基于RXTX的串口通讯 windows64位系统可用
    一些SQL
    Java 实现文件上传、下载、打包、文件copy、文件夹copy。
    Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (utf-8)
    Java -> 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)
    (转)解决:本地计算机 上的 OracleOraDb10g_home1TNSListener服务启动后停止
    PHP、Java对称加密中的AES加密方法
  • 原文地址:https://www.cnblogs.com/bomo/p/3618522.html
Copyright © 2011-2022 走看看