Beispiel #1
0
 private void ViewModel_DeviceRunAnalyzePicGenerated(DeviceRunAnalyzeDataInfo deviceRunAnalyze)
 {
     ScreenShot(deviceRunAnalyze);
 }
Beispiel #2
0
        private void ScreenShot(DeviceRunAnalyzeDataInfo deviceRunAnalyze)
        {
            string filename = System.AppDomain.CurrentDomain.BaseDirectory + "\\DeviceRunAnalyzeRunTime.png";

            if (File.Exists(filename)) //判断文件是否存在
            {
                File.Delete(filename);
            }
            //保存到特定路径
            FileStream fs = new FileStream(@filename, FileMode.Create);
            //对象转换成位图
            RenderTargetBitmap bmp = new RenderTargetBitmap((int)this.runControl.ActualWidth + 80, (int)this.runControl.ActualHeight + 40, 100, 100, PixelFormats.Pbgra32);

            bmp.Render(this.runControl);
            //对象的集合编码转成图像流
            BitmapEncoder encoder = new PngBitmapEncoder();

            encoder.Frames.Add(BitmapFrame.Create(bmp));
            //保存到路径中
            encoder.Save(fs);
            //释放资源
            fs.Close();
            fs.Dispose();
            //deviceRunAnalyze.RunTimePicPath = filename;

            BitmapImage image = new BitmapImage();

            using (FileStream fileStream = File.OpenRead(filename))
            {
                image.BeginInit();
                image.CacheOption  = BitmapCacheOption.OnLoad;//图像缓存到内存中,不会占用文件,没有被引用时会被自动回收。
                image.StreamSource = fileStream;
                image.EndInit();
            }
            deviceRunAnalyze.RunTimeImage = image;


            filename = System.AppDomain.CurrentDomain.BaseDirectory + "\\DeviceRunAnalyzeMaxValue.png";
            if (File.Exists(filename)) //判断文件是否存在
            {
                File.Delete(filename);
            }
            //保存到特定路径
            fs = new FileStream(@filename, FileMode.Create);
            //对象转换成位图
            bmp = new RenderTargetBitmap((int)this.maxControl.ActualWidth + 80, (int)this.maxControl.ActualHeight + 40, 100, 100, PixelFormats.Pbgra32);
            bmp.Render(this.maxControl);
            //对象的集合编码转成图像流
            encoder = new PngBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(bmp));
            //保存到路径中
            encoder.Save(fs);
            //释放资源
            fs.Close();
            fs.Dispose();
            //deviceRunAnalyze.MaxValuePicPath = filename;

            image = new BitmapImage();
            using (FileStream fileStream = File.OpenRead(filename))
            {
                image.BeginInit();
                image.CacheOption  = BitmapCacheOption.OnLoad;//图像缓存到内存中,不会占用文件,没有被引用时会被自动回收。
                image.StreamSource = fileStream;
                image.EndInit();
            }
            deviceRunAnalyze.MaxValueImage = image;
        }