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

によってコメントが好きです、あなたは可能性のある問題

関連する問題