Triệu chứng

Ứng dụng Windows Forms thực hiện mình rộng logic thiết đặt DPI cao có thể gặp bất thường rộng nếu các ứng dụng được chọn tham gia vào những thay đổi của Microsoft .NET Framework 4.5.2 DPI cao bằng cách sử dụng thiết đặt tệp .config sau:

<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />

</appSettings>


Giải pháp

Ứng dụng áp dụng một số tỉ lệ trên giá trị thu nhỏ sẽ gặp phải phụ rộng khi chúng được chọn tham gia vào những cải tiến về .NET Framework 4.5.2 DPI cao. Để khắc phục sự cố này, Cập nhật các ứng dụng rộng logic để áp dụng rộng ToolStrip.ImageScalingSize giá trị mặc định. Thay đổi này sẽ tránh việc giới thiệu thêm rộng.

Ví dụ, ứng dụng có mã sau sẽ có quy mô công cụ nút hai lần:

public MyToolStrip()
{

IntPtr hDC = GetDC(new HandleRef(null, IntPtr.Zero));

double xFactor = GetDeviceCaps(new HandleRef(null, hDC), LOGPIXELSX) / 96.0;

double yFactor = GetDeviceCaps(new HandleRef(null, hDC), LOGPIXELSY) / 96.0;

this.ImageScalingSize = new Size((int)(this.ImageScalingSize.Width * xFactor), (int)(this.ImageScalingSize.Height * yFactor));

InitializeComponent();

}


Bạn có thể sử dụng mã sau căn chỉnh kích thước liên tục mặc định hoặc kích thước mong muốn hình ảnh của bạn:

this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));


  

Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?

Cảm ơn phản hồi của bạn!

×