如下圖是 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