2011-04-05 120 views

回答

2

檢查here,它似乎可能在模擬器上。

+0

謝謝!從你的鏈接工作的解決方案:http://blog.markarteaga.com/ScreenCaptureOnWindowsPhone7.aspx – Rover 2011-04-05 14:40:34

+0

@Rover很高興我能幫上忙。 – gdp 2011-04-05 15:04:24

0

你不能害怕。如果你想截圖,你需要使用剪切工具之類的東西在外面做。

1

下面是如何從你的應用程序截取頁面代碼中的截圖並將其保存到手機的圖片庫。請注意,這不會捕獲SysTray或AppBar:

WriteableBitmap w = new System.Windows.Media.Imaging.WriteableBitmap(this, null); // 'this' is your current page 
WriteableBitmap w2 = new System.Windows.Media.Imaging.WriteableBitmap(480, 800); 

// space for SysTray 
for (int i = 0; i < 32; i++) 
{ 
    for (int j = 0; j < 480; j++) 
    { 
     w2.Pixels[i * 480 + j] = -16777216; // black #ff000000 
    } 
} 

// actual client area 
for (int i = 32; i < 728; i++) 
{ 
    for (int j = 0; j < 480; j++) 
    { 
     w2.Pixels[i * 480 + j] = w.Pixels[(i - 32) * 480 + j]; 
    } 
} 

// space for AppBar 
for (int i = 728; i < 800; i++) 
{ 
    for (int j = 0; j < 480; j++) 
    { 
     w2.Pixels[i * 480 + j] = -16777216; // black #ff000000 
    } 
} 
MemoryStream ms = new MemoryStream(); 
w2.SaveJpeg(ms, 480, 800, 0, 100); 
Microsoft.Xna.Framework.Media.MediaLibrary lib = new Microsoft.Xna.Framework.Media.MediaLibrary(); 
ms.Position = 0; 
lib.SavePicture("screenshot", ms); 
+0

它將其保存爲JPEG格式,即使質量爲100%,但實際上卻遺失了工件......似乎不是以PNG格式導出的方式嗎? – Jonny 2011-08-16 00:26:43

+0

別忘了處理你的MemoryStream!使用using語句。 – jedmao 2012-05-13 05:49:20

+0

我工作得很好,但是你知道如何截取網頁瀏覽器控件。 – 2012-07-13 03:03:51

2

在Silverlight#WP7應用程序中拍攝屏幕截圖。

public static void SaveToMediaLibrary(
FrameworkElement element, 
string title) 
{ 
try 
{ 
    var bmp = new WriteableBitmap(element, null); 

    var ms = new MemoryStream(); 
    bmp.SaveJpeg(
     ms, 
     (int)element.ActualWidth, 
     (int)element.ActualHeight, 
     0, 
     100); 
    ms.Seek(0, SeekOrigin.Begin); 

    var lib = new MediaLibrary(); 
    var filePath = string.Format(title + ".jpg"); 
    lib.SavePicture(filePath, ms); 

    MessageBox.Show(
     "Saved in your media library!", 
     "Done", 
     MessageBoxButton.OK); 
} 
catch 
{ 
    MessageBox.Show(
     "There was an error. Please disconnect your phone from the computer before saving.", 
     "Cannot save", 
     MessageBoxButton.OK); 
}} 
+0

引用您的資料http://wblo.gs/bGW – jedmao 2012-07-13 01:09:04