WPF控件截图

Posted 程序猿kid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF控件截图相关的知识,希望对你有一定的参考价值。

  //截图

        RenderTargetBitmap RenderVisaulToBitmap(Visual vsual, int width, int height)
        {
            var rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Default);
            rtb.Render(vsual);
 
            return rtb;
        }
 
        public enum ImageFormat { JPG, BMP, PNG, GIF, TIF }
        //图片存入流
        void GenerateImage(BitmapSource bitmap, ImageFormat format, Stream destStream)
        {
            BitmapEncoder encoder = null;
 
            switch (format)
            {
                case ImageFormat.JPG:
                    encoder = new JpegBitmapEncoder();
                    break;
                case ImageFormat.PNG:
                    encoder = new PngBitmapEncoder();
                    break;
                case ImageFormat.BMP:
                    encoder = new BmpBitmapEncoder();
                    break;
                case ImageFormat.GIF:
                    encoder = new GifBitmapEncoder();
                    break;
                case ImageFormat.TIF:
                    encoder = new TiffBitmapEncoder();
                    break;
                default:
                    throw new InvalidOperationException();
            }
 
            encoder.Frames.Add(BitmapFrame.Create(bitmap));
            encoder.Save(destStream);
        }

        //PickColorPlateImage是需要被截取的控件
        void CatchImg()
        {
            Stream fs = File.Create("F:\\test.bmp");
            var bmp = RenderVisaulToBitmap(PickColorPlateImage, (int)PickColorPlateImage.Width, (int)PickColorPlateImage.Height);
            ImageFormat formate = ImageFormat.BMP;
            BitmapSource bit = bmp;
            GenerateImage(bit, formate, fs);
        }

以上是关于WPF控件截图的主要内容,如果未能解决你的问题,请参考以下文章

WPF 对控件进行截图且不丢失范围(转载)

Layui版本的WPF开源控件库-Layui-WPF

WPF 选项卡控件样式

开源C# WPF控件库强力推荐

C# WPF开源控件库:MahApps.Metro

WPF中Ribbon控件的使用