我怎样才能完整截屏

时间:2012-12-12 09:57:30

标签: c# windows-phone-8

我有一个包含更多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();
}

1 个答案:

答案 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);
}