c# - 如何强制 .NET Framework 3.5 的 WPF 应用程序使用更新的 L&F?
问题描述
我正在考虑使用 WPF 制作一个简单的自包含 .NET 应用程序,该应用程序可以在任何现代 Windows 系统上运行,而无需最终用户手动下载和安装 .NET Framework 。
据我所知,用户只需单击 .exe 并等待一段时间,直到安装所需的库。
但是为 3.5 编译的应用程序在最新的 Windows 上使用旧的 L&F。
有没有办法让应用程序看起来像这样:
而不是这样(如果用户已经拥有 .NET Framework 4+):
解决方案
最后我想出了简单的解决方案。我的假设是错误的,似乎 .NET Framework 实际上使用了当前运行版本的 L&F,而不是目标版本。
- 创建
App.config
(项目 -> 添加 -> 新项目... -> 应用程序配置 (.config)) 粘贴以下内容:
<?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>
,直到找到可用为止。可以在此处找到支持的运行时列表。
推荐阅读
- javascript - 如何在布局呈现之前检查 Gatsby 网站是否已作为 PWA 启动?
- apache-spark - Spark Java - 用数据集中的另一个字符串替换特定字符串
- c# - 尝试在运行时将通用 IQueryable 设置为特定类型的 IQueryable 时出错
- javascript - 在 Windows 上,powershell 自动完成路径,但节点不知道如何使用路径
- c# - 在 UWP RichEditBox 中选择格式化文本并将其替换为新文本正在采用旧格式,我需要具有默认格式的新文本
- javascript - 用于映射和过滤的 FlatMap 与 Reduce - 是否推荐使用其中一种?
- java - 在日期构造函数中出现超出范围的编译时间错误
- android - 如何在部分屏幕中使用双击?
- ios - SwiftUI:通用(macOS 和 iOS)视图的 UserInterfaceSizeClass
- node.js - Maximo REST API 不在 node.js 中返回结果