哨兵

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1. WPF资源系统是一种保管一系列对象的简单方法,每个元素都有一个Resources属性,该属性存储了一个资源字典集合.资源结合可以包含任意类型的对象。样式也是一种资源。
  2. 静态资源与动态资源的区别:
    • 静态资源:从资源集合中获取资源一次,通过代码对资源的改动会更新到应用资源的控件
    • 动态资源:动态资源在每次需要时都会从资源集合中检索该资源
    • 静态资源总是在创建窗口时加载,动态资源在第一次使用它们时加载

      作为一般规则,动态资源通常应用与如下场景:
    • 资源依赖于系统的属性,如SystemColors,SystemFonts,SystemParameters
      <Style>
       <Style.Triggers>
          <Trigger Property="IsEnabled" Value="False">
              <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
           </Trigger>
       </Style.Triggers>
      </Style>
    • 计划通过编程替换资源对象
  3. 控件查找资源的顺序是首先查找自身资源,然后向上依次查找父窗口的资源,如果所有窗口中都找不到资源,会继续查找应用程序的资源,即在App.xaml中查找
  4. 如果要在多个项目之间共享资源,可以创建一个资源字典,资源字典是一个简单的xaml文档,只存储资源,不做其他任何事情,注意资源字典的Build Action应设为Page或者Resource。为了使用资源字典,需要将其合并到应用程序或者窗口的资源结合中,通常将其合并到应用程序的结合中
    <Application.Resources>
    <ResourceDictionary>            
              <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="path1.xaml"/>
    <!-- 资源字典在其他assembly中的引用格式,RA.Framework是assembly name,component/资源文件在工程中的路径 --> <ResourceDictionary Source="/RA.Framework;component/Themes/Generic.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources>
posted on 2014-11-10 20:10  哨兵  阅读(397)  评论(0编辑  收藏  举报