การใช้. NET Framework 4.7 และ Windows 10 Creators Update (1703) หรือใหม่กว่าคุณต้องทำสิ่งต่อไปนี้เพื่อกำหนดค่าการสนับสนุน DPI สูงสำหรับแอปพลิเคชัน Windows Form ของคุณ:
ประกาศความเข้ากันได้กับ Windows 10
ในการดำเนินการนี้ให้เพิ่มสิ่งต่อไปนี้ในmanifest
ไฟล์ของคุณ:
<compatibility xmlns="urn:schemas-microsoft.com:compatibility.v1">
<application>
<!-- Windows 10 compatibility -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
เปิดใช้งานการรับรู้ DPI ต่อจอภาพในapp.config
ไฟล์
Windows Forms แนะนำองค์ประกอบSystem.Windows.Forms.ApplicationConfigurationSectionใหม่เพื่อรองรับคุณลักษณะใหม่และการปรับแต่งที่เพิ่มเข้ามาโดยเริ่มจาก. NET Framework 4.7 หากต้องการใช้ประโยชน์จากคุณสมบัติใหม่ที่รองรับ DPI สูงให้เพิ่มสิ่งต่อไปนี้ในไฟล์คอนฟิกูเรชันแอปพลิเคชันของคุณ
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="PerMonitorV2" />
</System.Windows.Forms.ApplicationConfigurationSection>
สิ่งสำคัญ
ในเวอร์ชันก่อนหน้าของ. NET Framework คุณใช้รายการเพื่อเพิ่มการสนับสนุน DPI สูง ไม่แนะนำให้ใช้วิธีนี้อีกต่อไปเนื่องจากจะลบล้างการตั้งค่าที่กำหนดไว้ในไฟล์ app.config
เรียกใช้เมธอด EnableVisualStyles แบบคงที่
นี่ควรเป็นการเรียกวิธีแรกในจุดเข้าแอปพลิเคชันของคุณ ตัวอย่างเช่น:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
ข้อดีของสิ่งนี้คือการสนับสนุนสำหรับสถานการณ์ DPI แบบไดนามิกซึ่งผู้ใช้เปลี่ยน DPI หรือสเกลแฟคเตอร์หลังจากเปิดแอปพลิเคชัน Windows Forms
ที่มา: รองรับ DPI สูงใน Windows Forms