NEWS

[C#] Hướng dẫn cấu hình High DPI trên ứng dụng Desktop Winform

[C#] Hướng dẫn cấu hình High DPI trên ứng dụng Desktop Winform
Đăng bởi: Thảo Meo - Lượt xem: 5940 14:37:09, 17/10/2021C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẻ hướng dẫn các bạn chỉnh sửa cấu hình High DPI trên lập trình ứng dụng Desktop C#, Winform.

[C#] Config High DPI Winform

Hiện nay, các thiết bị màn hình đều được phát triển DPI cao nhưng hiện tại Winform mặc định thì không hiển thị tốt trên các màn hình này.

Thông số mặc định DPI trên Winform là 96, tức là có 96 pixel trên một diện tích inch vuông.

Vì vậy, khi các bạn chạy ứng dụng của mình trên thiết bị có DPI cao, font chữ của các bạn thường bị mờ đi.

Thường trường hợp này, các bạn dễ thấy, khi các bạn thiết kế ứng dụng trên Winform có scale 100%.

Sau đó, các bạn chạy project này trên máy tính có màn hình dpi cao scale 125%, chẳng hạn thì thường Visual Studio sẽ xuất hiện thông báo sau:

scaling-gold-bar

Có hai cách chỉnh:

Cách 1: Từ giao diện thuộc tính Property trên winform, ta chỉnh

AutoScaleMode  từ font => dpi

Tiếp đến, chúng ta mở file program.cs lên, và thêm vào đoạn code sau:

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();

if (Environment.OSVersion.Version.Major >= 6)
{
	SetProcessDPIAware();
}

Cách 2: Dùng file Application Manifest File

Từ project chúng ta add thêm file app.manifest vào project.

Tiếp đến, các bạn mở file này lên, và xóa bỏ đoạn comment sau:

<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
        <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
</application>

Khi cấu hình xong, các bạn có thể chạy lại để xem kết quả.

Thanks for watching!

Tags: high dpi c#

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn cấu hình High DPI trên ứng dụng Desktop Winform
Đăng bởi: Thảo Meo - Lượt xem: 5940 14:37:09, 17/10/2021C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.

Verified Website

See Report