WPF-黑屏而不是屏幕截图
我使用以下代码获取屏幕截图:WPF-黑屏而不是屏幕截图,wpf,screen-scraping,screenshot,Wpf,Screen Scraping,Screenshot,我使用以下代码获取屏幕截图: public static BitmapSource ToBitmapSource() { using (var screenBmp = new Bitmap(Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenWidth), Convert.ToInt32(System.Windows.SystemParameters.PrimarySc
public static BitmapSource ToBitmapSource()
{
using (var screenBmp = new Bitmap(Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenWidth),
Convert.ToInt32(System.Windows.SystemParameters.PrimaryScreenHeight),
System.Drawing.Imaging.PixelFormat.Format32bppArgb))
{
using (var bmpGraphics = Graphics.FromImage(screenBmp))
{
bmpGraphics.CopyFromScreen(0, 0, 0,
0, screenBmp.Size);
return Imaging.CreateBitmapSourceFromHBitmap(screenBmp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}
}
}
它在普通窗口中运行良好,但我在全屏应用程序中得到的是黑色矩形,而不是屏幕截图。为什么以及如何修复?
谢谢您提供的代码是准确的。我认为您在保存屏幕截图时遇到了问题。所以这里我附上了我的测试结果
private void Button_Click(object sender, RoutedEventArgs e)
{
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(ToBitmapSource())); // Calling your method
using (Stream stm = File.Create(AppDomain.CurrentDomain.BaseDirectory + "screenshot.png"))
{
png.Save(stm);
}
}
你是说当你看到黑色屏幕截图时,窗口处于最大化状态吗?不,我是说全屏,就像游戏一样。我在回答中提到的代码不适合你吗?