0
我有一個WPF
應用程序,可幫助我截屏整個屏幕。爲什麼在使用C#在WPF中截圖時出現隱藏窗口?
該應用程序包含一個帶有按鈕的小窗口,如果點擊該按鈕,屏幕捕捉將被拍攝並保存在驅動器上。
我想躲這個小窗口取捕獲之前,所以它不會被包括在捕獲,這裏是我的嘗試:
StartSnipping = new RelayCommand(() =>
{
// I hide it here !!
WindowVisibility = Visibility.Hidden;
//Than I take the screen shot
var screen = Screen.PrimaryScreen;
var bitmap = new Bitmap(screen.Bounds.Width, screen.Bounds.Height);
using (var graphics = Graphics.FromImage(bitmap))
{
graphics.CopyFromScreen(new Point(screen.Bounds.Left,
screen.Bounds.Top),
new Point(0, 0),
screen.Bounds.Size);
}
//I save the screen shot
bitmap.Save(@"C:/Users/Aymen/Desktop/test.png", ImageFormat.Png);
});
現在,假設該行:
WindowVisibility = Visibility.Hidden;
真的有用,嗯,我確定這是因爲畢竟那種方法完成運行後,窗口確實隱藏了。
並假設截圖被成功取出並保存,還包含了窗口,這是應該被隱藏,如截屏前1秒,我的問題是:
爲什麼這個隱藏窗口仍然出現在截圖?我該怎麼做才能使它不會出現在屏幕截圖中?
'//給它一些時間...... Thread.Sleep()...' - 請學會正確地進行多線程。 –
@HighCore thx的評論,這是一個絕望的事情,我補充說,現在刪除雖然 – AymenDaoudi
很難猜測「WindowVisibility」可能意味着什麼,沒有該名稱的財產。 Windows版本也很重要,Windows 8將完全透明的窗口視爲不同的方式,並且無法使用早期版本的CopyFromScreen()捕獲分層窗口。 –