• 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对应的样式字典,

    感谢您的阅读!

  • 相关阅读:
    sql月,年,统计报表sql报表
    Sql server在cmd下的使用
    c# 批量处理数据录入
    vmware安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
    以太坊去中心化淘宝智能合约案例
    智能合约入门
    智能资产构建去中心化的资产管理系统
    以太坊搭建联盟链
    web 前端
    EasyUI+bootsrtap混合前端框架
  • 原文地址:https://www.cnblogs.com/yang-fei/p/5847217.html
Copyright © 2020-2023  润新知