2012-12-12 122 views
3

我有一個列表框有更多的10項,我寫了一個代碼在Windows Phone 8上截圖並共享,但它只是把所有內容顯示在屏幕上(3項)而不是完整的列表框。我怎樣才能截取完整的Lisbox截圖?這是我的代碼。我怎樣才能截圖完整

var bmp = new WriteableBitmap(lbxDays, new TranslateTransform()); 
var width = (int)bmp.PixelWidth; 
var height = (int)bmp.PixelHeight; 
bmp.Render(lbxDays, new TranslateTransform()); 
using (var ms = new MemoryStream()) 
{ 
    bmp.SaveJpeg(ms, width, height, 0, 100); 
    ms.Seek(0, System.IO.SeekOrigin.Begin); 
    var lib = new MediaLibrary(); 
    var dateStr = DateTime.Now.Ticks; 
    var picture = lib.SavePicture(string.Format("screenshot"+dateStr+".jpg"), ms); 
    var task = new ShareMediaTask(); 
    task.FilePath = picture.GetPath(); 
    task.Show(); 
} 
+0

所以基本上你想要的不是一個截圖,因爲你希望它包含的東西*屏幕上沒有顯示*,是嗎? –

回答

0

試試這個代碼拍攝你的控件的快照。將UIElement傳遞給您想要的這種方法。希望這會解決你的問題

private WriteableBitmap RenderControlAsImage(UIElement element) 
{ 
    element.UpdateLayout(); 
    element.Measure(new Size(element.Width, element.Height)); 
    element.Arrange(new Rect(0, 0, element.Width, element.Height)); 
    return new WriteableBitmap(element, null); 
}