如下图是 dotnet 9 之前的渲染效果界面图:
如下图是 dotnet 9 版本的渲染效果界面图:
如何启用或关闭此功能
默认升级到 dotnet 9 即可自动开启
如在 dotnet 9 版本上,期望能够关闭此功能,还原到旧版本的渲染行为,可通过 Switch.System.Windows.DisableSpecialCharacterLigature
进行设置
public App(){AppContext.SetSwitch("Switch.System.Windows.DisableSpecialCharacterLigature", true);}
此功能是如何实现的
此功能是在不开源的 PresentationNative.dll 里面实现的,因此没有直接的实现代码。但预计只是调用 DirectX 的科技即可实现。从哪可以了解到其实现信息?请参阅: Adding AppContext Switch for disabling special character ligatures by Kuldeep-MS · Pull Request #8990 · dotnet/wpf
更多实现 dotnet 9 的 WPF 更新请参阅:What's new in WPF for .NET 9 - WPF .NET