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?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.