wpf如何截屏

wpf怎么截屏,winform的有些类在wpf里是不是没有?有为什么用就出错?怎么截屏,是WPF!... wpf怎么截屏,winform的有些类在wpf里是不是没有?有为什么用就出错?怎么截屏,是WPF! 展开
 我来答
龍过鸡年
2012-12-18 · TA获得超过311个赞
知道小有建树答主
回答量:308
采纳率:100%
帮助的人:368万
展开全部
WPF 中一样可以调用 WinForm 的类库的
System.Drawing.dll
System.Windows.Forms.dll

下面给出一个示例:
1、获取主屏幕大小
2、截取屏幕图像
3、保存图像文件

下面代码加入某个按钮的Click事件中

var size = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size;
var bitmap = new System.Drawing.Bitmap(size.Width, size.Height);

var g = System.Drawing.Graphics.FromImage(bitmap);
g.CopyFromScreen(0, 0, 0, 0, size);
bitmap.Save("C:\\screen.png", System.Drawing.Imaging.ImageFormat.Png);
Mickal小米
2012-12-12 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1772万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
科学普及交流
高粉答主

推荐于2016-07-18 · 帮助别人,幸福你我!
科学普及交流
采纳数:83444 获赞数:657714

向TA提问 私信TA
展开全部
截取屏幕图像方法:、
截图前,先拷贝整个屏幕图像到一个Image中,我们称之为ScreenSnapshot, 然后用户通过鼠标操作,确定一个矩形区域Rect,将Rect传递给函数BitmapSource Clip(Rect r) , Clip函数在ScreenSnapshot上截取Rect对于的那一部分图像,并返回。
  WPF没有内置的函数,但可以借用WinForm的Graphics来完成,其将图像截取并保存在一个System.Drawing.Bitmap上,然后我们使用一个辅助函数将System.Drawing.Bitmap转化为WPF版本的System.Media.Imaging.BitmapSource对象就可以了
public static Bitmap GetScreenSnapshot()
{
Rectangle rc = SystemInformation.VirtualScreen;
var bitmap = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);

using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(rc.X, rc.Y, 0, 0, rc.Size, CopyPixelOperation.SourceCopy);
}

return bitmap;
}

public static BitmapSource ToBitmapSource(this Bitmap bmp)
{
BitmapSource returnSource;

try
{
returnSource = Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(),IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}
catch
{
returnSource = null;
}

return returnSource;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式