Я хочу получить снимок экрана текущей формы WinForm. Для этого я использую такой метод:
Код: Выделить всё
private void GetScreen(string file_path)
{
Opacity = 0;
var rect = new Rectangle(Location.X, Location.Y, Width, Height);
using var bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format64bppArgb);
using var gfx = Graphics.FromImage(bmp);
gfx.CopyFromScreen(rect.Left, rect.Top, 0, 0, Size);
Opacity = .99D;
bmp.Save(file_path, ImageFormat.Tiff);
}
Этот фрагмент кода работает правильно. Но мне очень неудобно устанавливать непрозрачность. Потому что когда это работает, такое ощущение, что форма постоянно мерцает. То же самое чувство возникает, когда я скрываю/показываю форму. Я хочу, чтобы форма постоянно появлялась на лицевой стороне. Но когда я запускаю метод, я хочу, чтобы он сделал снимок экрана позади формы без элементов формы и сохранил его. Например, есть программа AnyMP4 Screen Recorder. Он может делать снимки экрана внутри кадра без необходимости операций отображения/скрытия.
Как это сделать?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... form-on-it