2012-12-12 61 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); 
}