Tôi thấy sự khác biệt thú vị giữa độ phân giải được đặt qua Bảng điều khiển và đầu ra của Screen.Bounds cho máy tính xách tay màn hình rộng của tôi. Màn hình 15,5" và độ phân giải thiết lập thông qua Control Panel là 1920x1080. Tuy nhiên khi tôi chạy một số mã như thế này.Độ phân giải màn hình không khớp với Screen.Bounds
Screen[] screens = Screen.AllScreens;
foreach (Screen scr in screens)
{
Console.WriteLine("Width: " + scr.Bounds.Width + ", Height: " + scr.Bounds.Width);
}
Kết quả cho thấy độ phân giải của tôi là 1536x864. Tôi đã làm một số tìm kiếm xung quanh, và tôi nghĩ rằng nó có thể liên quan đến vấn đề DPI và khi tôi xem cài đặt hiển thị của mình, thanh trượt (Tôi đang sử dụng Windows 8.1) ở giữa và hộp kiểm cho biết "Hãy để tôi chọn một cấp độ thu nhỏ cho tất cả các màn hình của tôi" được bỏ chọn Tôi đã chạy mã nhỏ này để có được thiết lập DPI hiện tại
float dpiX, dpiY;
Graphics graphics = new System.Windows.Forms.Form().CreateGraphics();
Console.WriteLine("DPI: " + graphics.DpiX);
DPI được trả về là 96.0 theo sự hiểu biết của tôi là 100% DPI setti ng (do đó không mở rộng hoặc bất cứ điều gì nó được gọi). Điều có vẻ kỳ quặc đối với tôi là các giới hạn được trả về bởi Màn hình chính xác là 80% độ phân giải thực tế của tôi, điều này khiến tôi nghĩ rằng DPI của tôi được đặt thành 100 (hoặc 125%) nhưng không phải vậy. Tôi chỉ gặp vấn đề này với màn hình máy tính xách tay của tôi, như màn hình phụ của tôi có giới hạn bằng với độ phân giải thông qua Bảng điều khiển. Đây có phải là do thực tế là thiết lập DPI của tôi không được thiết lập để hiển thị độc lập với nhau (hộp kiểm được chọn) không? Đối với một chút nền, tôi đang viết một công cụ lấy màn hình hiện tại và lấy hình ảnh từ reddit và phù hợp với màn hình độc lập với nhau, vì vậy bất kỳ giải pháp nào tôi có, nó phải có độ phân giải chính xác của từng màn hình.
Tôi giả sử 'scr.Bounds..Primary' trong ví dụ mã đầu tiên của bạn thực sự nên là' scr.Bounds.Height'? –
Nếu "Hãy để tôi chọn một mức tỷ lệ cho tất cả các màn hình của tôi" được ** bỏ chọn ** thì chắc chắn bạn có các DPI khác nhau được đặt cho mỗi màn hình? –
@StevenRands cố định ví dụ và tôi nghĩ rằng đó là trường hợp, tuy nhiên nếu hộp đó được bỏ chọn, DPI cho cả hai màn hình vẫn là 96.0. Tôi có làm điều gì sai trái trong cách tôi nhận được DPI không? –