2016-12-16 23 views
0

Я пытаюсь иметь опцию в моей программе под названием «Сохранить текущий снимок», где изображение интерфейса моей программы сохраняется в нужном месте. Это для справочных целей, например. если кто-то не хочет открывать программу, чтобы увидеть результат, который они уже собрали.C# WPF - Как сохранить снимок экрана текущего вида интерфейса вашей программы?

У меня уже есть функция скриншот программы, я просто не знаю, как ее реализовать с помощью SaveFileDialog, чтобы сохранить изображение.

функция Скриншот:

private static BitmapSource CopyScreen() 
     { 
      using (var screenBmp = new Bitmap(
       (int)SystemParameters.PrimaryScreenWidth, 
       (int)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()); 
       } 
      } 
     } 

SaveFileDialog код:

SaveFileDialog saveImage = new SaveFileDialog(); 
saveImage.Filter = "Images|*.png;*.bmp;*.jpg"; 
saveImage.ShowDialog(); 

Может кто-то пожалуйста, помогите мне с сохранением изображения в пользовательской выбранном месте? Спасибо.

+0

Возможные дублировать [Как сделать снимок экрана элемента управления WPF?] (http://stackoverflow.com/questions/24466482/how-to-take-a-screenshot-of-a-wpf-control) – Zack

ответ

0

Вы можете использовать ссылочный код в комментарии.

Используйте диалоговое окно сохранения, чтобы получить желаемый путь и сделать так же, как прокомментировал @Zack

// If the file name is not an empty string open it for saving. 
if(saveImage.FileName != "") 
{ 
    System.IO.FileStream fs = System.IO.File.Open(saveImage.FileName, System.IO.FileMode.OpenOrCreate); 
    Screenshot.Save(fs, System.Drawing.Imaging.ImageFormat.Bmp); 
    fs.Close(); 
} 

Я по телефону так не может проверить это, комментарий, если у вас есть проблемы

 Смежные вопросы

  • Нет связанных вопросов^_^