Пытаюсь использовать код скриншота с помощью Windows, но на Macbook, но он захватывает только верхнюю левую часть экрана C#

#c# #windows #macos

#c# #Windows #macos

Вопрос:

Все, что я пытаюсь сделать, это сделать скриншот моего экрана, чтобы я мог использовать его в другом месте. Он захватывает только верхнюю левую часть экрана. Я провел тяжелую отладку и обнаружил, что проблема заключается в том, что, поскольку я запускаю Windows на Mac, значения размера экрана неверны и, следовательно, занимают только часть экрана. Это мой тестовый код, все, что мне нужно, — это охватить весь экран целиком или, в качестве альтернативы, разрешить мне захватывать определенные части экрана, например, середину.

  var bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
                                       Screen.PrimaryScreen.Bounds.Height,
                                       PixelFormat.Format32bppArgb);

 var gfxScreenshot = Graphics.FromImage(bmpScreenshot);

 gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
                                    Screen.PrimaryScreen.Bounds.Y,
                                    0,
                                    0,
                                    Screen.PrimaryScreen.Bounds.Size,
                                    CopyPixelOperation.SourceCopy);
 CurrentSS = bmpScreenshot;
 pictureBox1.Image = bmpScreenshot;
 

И это то, что он фиксирует:

Изображение формы

Комментарии:

1. Как вы запускаете Windows на macOS? Учебный лагерь? Параллели? Виртуальная машина? Удаленный рабочий стол?

2. Я считаю, что это учебный лагерь, единственная проблема заключается в том, что, как я уже сказал, основной размер экрана кажется неправильным

3. Может ли это быть DPI ?

4. @stuartd Да, это может быть так, я попробую, попробую, а затем вернусь к вам с этим 🙂

5. @stuartd Это была проблема, я исправил ее, просто снизив разрешение моего монитора, единственная проблема сейчас, как ни удивительно, изображение имеет низкое разрешение, надеюсь, это не будет проблемой, но я думаю, я доберусь до этого, когда доберусь до него