ОБНОВЛЕНИЕ: не является дубликатом.
Мой вопрос не в том, как сделать скриншот. Я знаю это, но это не то, что мне нужно. У меня могут быть другие элементы управления холстом, и я не хочу их захватывать, а только изображение на холсте с изображением, которое видно в прозрачности под холстом.
Мне нужно захватить изображение на холсте с непрозрачностью 50%, но захваченное изображение имеет черный фон вместо изображения в фоновом режиме (рабочий стол).
Я использую этот код для захвата изображения:
MemoryStream ms = new MemoryStream();
RenderTargetBitmap rtb = new RenderTargetBitmap(1920, 1080, 96d, 96d, PixelFormats.Default);
rtb.Render(canvasCapture);
BmpBitmapEncoder BmpEncoder = new BmpBitmapEncoder();
BmpEncoder.Frames.Add(BitmapFrame.Create(rtb));
BmpEncoder.Save(ms);
Это холст:
<Canvas x:Name="canvasCapture" Background="#7F0F0F0E" />
В моем приложении я вижу прозрачный рабочий стол под холстом, но захваченное изображение имеет черный фон. Как я могу захватить изображение с фоном, как я вижу его в приложении?
Visibility.Hidden
), когда вы делаете снимок экрана. Или вы можете отказаться от требования, чтобы фон рабочего стола был включен в изображение. В любом случае, вопрос, который вы задали, является дубликатом того, который отмечен выше. - person Peter Duniho   schedule 04.10.2019