zoukankan      html  css  js  c++  java
  • WPF程序在Windows 7下应用Windows 8主题

    这篇博客介绍如何在Windows 7下应用Windows 8的主题。

    首先我们先看一个很常见的场景,同样的WPF程序(样式未重写)在不同的操作系统上展示会有些不同。这是为什么呢?WPF程序启动时会加载与操作系统对应的主题。下面将列出常见的OS主题与WPF主题的关系。

    针对不同操作系统的主题,WPF程序会加载不同的主题assembly。这样就形成了同样的XAML代码在不同的OS中展示效果。

    回到这篇博客的主题,为Windows 7下的WPF程序应用Windows 8主题。通过上面的表格,可以知道,如果我们能够给WPF程序应用上PresentationFramework.Aero2.dll的主题就可以了。

    1. WPF程序中添加PresentationFramework.Aero2.dll引用;

    2. 将PresentationFramework.Aero2.dll的Copy Local属性设置为True;

    3. 在App.xaml中添加下面的Resource;

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/PresentationFramework.AeroLite;component/themes/AeroLite.NormalColor.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

    此时在Windows 7环境下运行应用Windows 8主题的程序,结果如下:

     

    PresentationFramework.Aero Theme相关的assembly可以在 C:WindowsMicrosoft.NETassemblyGAC_MSIL目录下找到.

    通过ILSpy获得WPF不同主题assembly对应的样式字典,

    感谢您的阅读!

  • 相关阅读:
    易联云-打印机
    通俗易懂了解Vue中nextTick的内部实现原理
    题解 CF1556E 【Equilibrium】
    题解 P6087 【[JSOI2015]送礼物】
    Redisson分布式锁源码分析
    Java代理模式
    java 8 去重
    jdk 8 list 转map Duplicate key WmSoDetail
    前端单点登录(SSO)
    Linux基础02 bash shell(命令补全, 快捷键, 历史命令, 命令别名alias, ls, man), 目录管理
  • 原文地址:https://www.cnblogs.com/yang-fei/p/5847217.html
Copyright © 2011-2022 走看看