Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menulis Kod WinForms Penskalaan Auto yang Menyesuaikan Diri dengan Tetapan DPI dan Fon yang Berbeza?

Bagaimanakah Saya Boleh Menulis Kod WinForms Penskalaan Auto yang Menyesuaikan Diri dengan Tetapan DPI dan Fon yang Berbeza?

Barbara Streisand
Barbara Streisandasal
2025-01-19 08:32:09174semak imbas

How Can I Write Auto-Scaling WinForms Code That Adapts to Different DPI and Font Settings?

Panduan Penulisan Kod Penskalaan Auto WinForms

Pengenalan

WinForms tidak kekurangan keupayaan penskalaan automatik yang berkuasa .NET 2.0 dan versi yang lebih baru mempunyai peningkatan yang ketara dalam penskalaan automatik. Artikel ini meneroka garis panduan dan pengehadan reka bentuk untuk membantu pembangun menulis kod WinForms yang menyesuaikan diri dengan pelbagai fon sistem dan tetapan DPI.

Zum menyokong kawalan terhad

Sesetengah kawalan WinForms mempunyai had dengan penskalaan automatik:

    Kawalan
  • Label, jika sifat AutoSize ditetapkan kepada False dan sifat Font diwarisi. Sila tetapkan fon secara eksplisit kepada huruf tebal dalam tetingkap sifat.
  • ListView Lebar lajur kawalan. Gantikan borang.Kaedah ScaleControl untuk melaraskan lebar lajur.
  • SplitContainer Ciri-ciri Panel1MinSize, Panel2MinSize dan SplitterDistance bagi kawalan.
  • TextBox kawalan, jika sifat MultiLine ditetapkan kepada True dan mewarisi sifat Font. Sila tetapkan fon secara eksplisit.
  • ToolStripButton Imej kawalan. Manipulasi sifat ToolStrip.AutoSize dan ToolStrip.ImageScalingSize dalam pembina borang.
  • PictureBox Sifat SizeMode bagi kawalan mesti ditetapkan kepada Zum atau StretchImage.
  • TreeView Imej kawalan. Laraskan sifat ImageList.ImageSize mengikut DPI.
  • Borang Saiz kawalan. Skala secara manual borang bersaiz tetap selepas dibuat.

Garis panduan reka bentuk penskalaan automatik

Untuk memastikan penskalaan automatik yang berkesan, sila ikut garis panduan ini:

  • Tetapkan AutoScaleMode kepada Font: Semua kawalan bekas harus mempunyai AutoScaleMode ditetapkan kepada Font untuk menampung perubahan DPI dan fon sistem.
  • Tetapkan AutoScaleDimensions: Gunakan AutoScaleDimensions = System.Drawing.SizeF(6F, 13F) baharu, dengan mengandaikan fon 96dpi dan MS Sans Serif. Sila laraskan nilai ini mengikut DPI dan fon yang dipilih.
  • Mereka pada 96dpi: Elakkan menggunakan sifat Anchor Right atau Bottom terus pada kawalan pengguna. Sila gunakan Panel sebagai perantara.
  • Mengendalikan penambahan kawalan dinamik: Untuk kawalan yang ditambah secara dinamik, jeda reka letak, tetapkan AutoSkalaMod dan AutoSkala Dimensi, dan kemudian sambung semula reka letak sebelum menambah.
  • Elakkan menggunakan Form.MaxSize dalam pereka bentuk: Tetapkan MaxSize secara dinamik untuk mengelakkan pengehadan skala.
  • Gunakan Berlabuh atau Berlabuh: Pastikan semua kawalan dalam bekas menggunakan Berlabuh atau Berlabuh untuk penskalaan automatik yang konsisten.
  • Hadkan saiz borang dalam pereka bentuk: Pastikan saiz borang pereka bentuk di bawah 1000x680 untuk penskalaan optimum pada pelbagai tetapan DPI.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menulis Kod WinForms Penskalaan Auto yang Menyesuaikan Diri dengan Tetapan DPI dan Fon yang Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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