2016-12-16 6 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(); 
} 

그래서 당신은