Biasa penskalaan untuk beberapa aplikasi Windows Forms dengan .NET Framework 4.5.2

Gejala

Aplikasi Windows Forms yang menerapkan mereka sendiri penskalaan logika untuk pengaturan DPI tinggi mungkin mengalami biasa penskalaan jika aplikasi ini disertakan ke Microsoft .NET Framework 4.5.2 DPI tinggi perubahan menggunakan pengaturan file .config berikut ini:

<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />

</appSettings>


Pemecahan masalah

Aplikasi yang menerapkan faktor penskalaan ke nilai skala akan mengalami tambahan penskalaan ketika mereka memilih ke .NET Framework 4.5.2 DPI tinggi peningkatan. Untuk mengatasi masalah ini, pembaruan logika penskalaan aplikasi untuk menerapkan penskalaan pada nilai asali ToolStrip.ImageScalingSize . Perubahan ini akan menghindari Pendahuluan tambahan penskalaan.

Sebagai contoh, aplikasi yang memiliki kode berikut akan skala ToolStrip tombol dua kali:

public MyToolStrip()
{

IntPtr hDC = GetDC(new HandleRef(null, IntPtr.Zero));

double xFactor = GetDeviceCaps(new HandleRef(null, hDC), LOGPIXELSX) / 96.0;

double yFactor = GetDeviceCaps(new HandleRef(null, hDC), LOGPIXELSY) / 96.0;

this.ImageScalingSize = new Size((int)(this.ImageScalingSize.Width * xFactor), (int)(this.ImageScalingSize.Height * yFactor));

InitializeComponent();

}


Anda dapat menggunakan kode berikut untuk mengubah skala dari ukuran asali terus-menerus, atau dari ukuran gambar diinginkan Anda:

this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));


  

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×