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