WPF RenderTargetBitmap页面保存图片偏移/错位问题。

WPF组件保存代码:

                FrameworkElement ui = charts; // 记录要保存的组件
                ui.Arrange(new Rect(0, 0, ui.ActualWidth, ui.ActualHeight));// 设置渲染位置和大小
                var path = $"{AppDomain.CurrentDomain.BaseDirectory}pulseImage\\{message.TreaeNmber}.jpg";
                Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path));
                FileStream ms = new FileStream(path, FileMode.Create);
                RenderTargetBitmap bmp = new RenderTargetBitmap((int)ui.ActualWidth, (int)ui.ActualHeight, 96, 96, PixelFormats.Pbgra32);
                bmp.Render(ui);
                BitmapEncoder encoder = new JpegBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(bmp ));
                encoder.Save(ms);
                ms.Close();

问题1:保存背景全黑

解决方法:最外层标签添加背景色  Background="#fff"。

问题2:图片保存后出现偏移,图片不在左上角。

解决方法:见代码第二行,重新设置显示内容的控件渲染位置和大小

  ui.Arrange(new Rect(0, 0, ui.ActualWidth, ui.ActualHeight));// 设置渲染位置和大小

你可能感兴趣的:(C#,c#,wpf)