Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Kawalan WinForms Boleh Auto-Skala Dengan Betul ke Fon Sistem dan Tetapan DPI?

Bagaimanakah Kawalan WinForms Boleh Auto-Skala Dengan Betul ke Fon Sistem dan Tetapan DPI?

Mary-Kate Olsen
Lepaskan: 2025-01-19 08:16:08
asal
825 orang telah melayarinya

How Can WinForms Controls Be Properly Auto-Scaled to System Font and DPI Settings?

Penskalaan auto WinForms: menyesuaikan diri dengan fon sistem dan tetapan DPI

Pengenalan

Semakan sebelum ini sering mencadangkan bahawa keupayaan autoscaling WinForms adalah lebih rendah daripada WPF. Walau bagaimanapun, berdasarkan penyelidikan dan ujian pengarang, kefungsian autoscaling WinForms telah bertambah baik dengan ketara dalam .NET 2.0.

Kawalan had zum

Walaupun ada peningkatan, sesetengah kawalan dalam WinForms masih mempunyai had penskalaan dan harus dielakkan:

  • AutoSize = Palsu dan warisi Label fon: Tetapkan fon kawalan secara eksplisit dalam tetingkap sifat supaya ia kelihatan tebal.
  • Lebar lajur ListView: (tolak ScaleControl borang untuk membetulkan masalah ini)
  • Sifat Panel1MinSize, Panel2MinSize dan SplitterDistance bagi SplitContainer
  • MultiLine = True dan TextBox mewarisi fon: Menetapkan fon kawalan secara eksplisit.
  • Imej untuk ToolStripButton: Laraskan ToolStrip.AutoSize dan ToolStrip.ImageScalingSize dalam pembina borang.
  • PictureBox.SizeMode mesti ditetapkan kepada Zum atau StretchImage.
  • Imej untuk TreeView: Tetapkan ImageList.ImageSize berdasarkan CreateGraphics.DpiX dan .DpiY.
  • Saiz borang: Skala secara manual bentuk saiz tetap selepas dibuat.

Panduan reka bentuk penskalaan automatik

Untuk memastikan penskalaan automatik yang betul dalam WinForms, garis panduan berikut mesti dipatuhi:

  • Tetapkan semua AutoScaleMode ContainerControls kepada Fon.
  • Tetapkan semua AutoScaleDimensions ContainerControls kepada 6F, 13F dengan andaian 96dpi dan fon lalai (MS Sans Serif).
  • Kerja pada 96dpi dan edit sifat untuk mengatasi tingkah laku penskalaan DPI Visual Studio.
  • Elakkan menetapkan fon pada tahap bekas.
  • Kawalan dok ke panel dan bukannya terus ke UserControls.
  • Apabila menambah kawalan secara dinamik, jeda dan sambung semula reka letak.
  • Kekalkan AutoScaleMode kelas asas yang diperoleh daripada ContainerControl sebagai Inherit.
  • Tentukan MinSize dan MaxSize dalam kod, bukan dalam pereka bentuk.
  • Gunakan dok atau sauh secara konsisten dalam bekas.
  • Kekalkan saiz borang di bawah 1000x680 dalam pereka bentuk pada 96dpi untuk mengelakkan pemangkasan semasa penskalaan.

Atas ialah kandungan terperinci Bagaimanakah Kawalan WinForms Boleh Auto-Skala Dengan Betul ke Fon Sistem dan Tetapan DPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan