2015-12-16 32 views
0

我想從控制檯應用程序中顯示圖像,並且我已經編寫了代碼來執行此操作。但是當它顯示圖像時,它會顯示一個奇怪的Form框。如果我保存圖像並正常打開,它會顯示圖像。C#控制檯 - 通過表單顯示圖像

代碼:

Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); 

Graphics g = Graphics.FromImage(bmpScreenCapture); 

g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, 
    Screen.PrimaryScreen.Bounds.Y, 
    0, 0, 
    bmpScreenCapture.Size, 
    CopyPixelOperation.SourceCopy); 

bmpScreenCapture.Save("potato.png", ImageFormat.Png); 

Form imageForm = new Form(); 
//imageForm.FormBorderStyle = FormBorderStyle.None; 
imageForm.Controls.Add(new PictureBox() { Image = bmpScreenCapture, Visible = true }); 
imageForm.Show(); 
+2

控制檯模式應用程序對於GUI來說是一個相當不友善的地方。你至少必須使用ShowDialog()。試圖有點懷孕是一個壞主意。 –

+0

只是不使用表格。而是期待實際打開圖像。我認爲你需要的只是'Process.Start(文件名)'在默認應用程序中打開它。 (如果這就是你想要做的) – TyCobb

+0

這不是重複的,因爲他們不希望它以他們想要的形式直接輸出到控制檯。 –

回答

0

這是因爲你所看到的表格邊框。你在正確的軌道上:

imageForm.FormBorderStyle = FormBorderStyle.None; 

但是,您需要適當調整窗口大小。但你甚至不需要一個窗口。呼叫後

bmpScreenCapture.Save("potato.png", ImageFormat.Png); 

只要做System.Diagnostics.Process.Start(「Potato.png」);它會在默認程序中打開圖像。

+0

我正在測試它,但圖像只需要很短的時間。我也調整了大小,但它仍然顯示了一個奇怪的消息框。使用的代碼是imageForm.Size = bmpScreenCapture.Size;我也計劃不斷改變形象,使它看起來好像在移動:) –

0
 Form imageForm = new Form(); 
     imageForm.Text = "Screenshot"; 
     //imageForm.FormBorderStyle = FormBorderStyle.None; 
     imageForm.Size = bmpScreenCapture.Size; 
     imageForm.BackgroundImageLayout = ImageLayout.Zoom; 
     imageForm.BackgroundImage = bmpScreenCapture; 
     imageForm.ShowDialog();