微軟不再支援Windows Form了, 所以本篇僅留作紀錄,請讀者直接放棄
Windows 10更改了DPI(螢幕密度)的縮放的行為, 所以當螢幕字體放大後, 以前開發的程式若是使用Windows Form, 字體都會模糊. 若是使用WPF則會自動感知DPI, 不會有模糊的現像.
此問題需使用VS2017版本解決. VS2013己測試過, 無法解決.
修改app.manifest
在專案按右鍵/加入/新增項目, 然後選取應用程式資訊清單檔案, 檔名使用預設的app.manifest即可. 然後將底下的註解拿掉
<!-- 表示應用程式為 DPI 感知,Windows 不會在 DPI 變高時自動 調整。Windows Presentation Foundation (WPF) 應用程式會自動感知 DPI,因此不需要 選擇加入。選擇加入這項設定之以 .NET Framework 4.6 為目標的 Windows Form 應用程式也 應該在其 app.config 中將 'EnableWindowsFormsHighDpiAutoResizing' 設定為 'true'。--> <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> </windowsSettings> </application>
App.config
若使用 .NET Framework4.6, 則在App.config中, 需將EnableWindowsFormsHighDpiAutoResizing 設定為true.
<configuration> <configSections> </configSections> <connectionStrings /> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <appSettings> <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" /> </appSettings> </configuration>
經過上面的更改, 模糊的問題就可以解決了