using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace TemuKJD.KJDForms.BaseForms { public partial class BaseForm : Form { public BaseForm() { InitializeComponent(); } private void BaseForm_Load(object sender, EventArgs e) { using (Graphics graphics = Graphics.FromHwnd(IntPtr.Zero)) { float dpi = graphics.DpiX; // 或者使用 graphics.DpiY 获取垂直方向的DPI // float dpi = graphics.DpiY; // Console.WriteLine("Screen DPI: " + dpi); // winform程序会闪退 SetFont(this, dpi); } } void SetFont(Control control, float dpi) { foreach (Control c in control.Controls) { SetFont(c, dpi); Font of = c.Font; Font f = new Font(of.FontFamily, (of.Size * 96.0 / dpi).ParseToFloat(), of.Style, Font.Unit, Font.GdiCharSet, Font.Bold); c.Font = f; if (c is DataGridView) { } } } } }