首页 > 解决方案 > 如何强制 .NET Framework 3.5 的 WPF 应用程序使用更新的 L&F?

问题描述

我正在考虑使用 WPF 制作一个简单的自包含 .NET 应用程序,该应用程序可以在任何现代 Windows 系统上运行,而无需最终用户手动下载和安装 .NET Framework 。

据我所知,用户只需单击 .exe 并等待一段时间,直到安装所需的库。

但是为 3.5 编译的应用程序在最新的 Windows 上使用旧的 L&F。

有没有办法让应用程序看起来像这样:

在此处输入图像描述

不是这样(如果用户已经拥有 .NET Framework 4+):

在此处输入图像描述

标签: c#wpf.net-3.5

解决方案


最后我想出了简单的解决方案。我的假设是错误的,似乎 .NET Framework 实际上使用了当前运行版本的 L&F,而不是目标版本。

  1. 创建App.config(项目 -> 添加 -> 新项目... -> 应用程序配置 (.config))
  2. 粘贴以下内容:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <startup>
        <!-- Use 4.0 -->
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        <!-- Use 2.0 - 3.5 -->
        <supportedRuntime version="v2.0.50727" />
      </startup>
    </configuration>
    

.NET Framework 将进行扫描<supportedRuntime>,直到找到可用为止。可以在此处找到支持的运行时列表。


推荐阅读