Pertanyaan TextRenderer: Bagaimana cara mengukur teks seolah-olah berada di mesin dengan Dpi berbeda?


Saya memiliki aplikasi C # WinForms yang terdiri dari server dan sisi klien. saya menggunakan TextRenderer.MeasureText(string text, Font font) metode untuk mengukur teks.

Pada suatu saat saya perlu mengukur teks di sisi server, seolah-olah itu pada klien. Saya mengirim nilai Graphics.DpiX dan Graphics.DpiY dari klien ke server. Berdasarkan nilai-nilai itu, bagaimana saya bisa mengukur teks di sisi server? Poin utamanya adalah bahwa klien dan server Dpi mungkin berbeda.

Saya kira, saya bisa menciptakan Graphics objek dari nilai-nilai Dpi entah bagaimana dan digunakan TextRenderer.MeasureText(IDeviceContext dc, string text, Font font) membebani untuk mengukur teks saya. Namun cara membuatnya Graphics hanya dari nilai DpiX dan DpiY?


7
2017-11-19 12:57


asal


Jawaban:


Anda dapat mencoba hack ini: Menerapkan transformasi ke ukuran font yang Anda gunakan untuk mengukur: Menggambar dengan font 12pt pada 120dpi akan mengambil jumlah piksel yang sama dengan Menggambar dengan 12 * 120/96 = 15 pada 96 dpi.


0
2017-08-27 21:17