我有一个包含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();
}
最佳答案
尝试使用此代码来获取控件的快照。将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);
}
关于c# - 如何拍摄完整的屏幕截图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13837148/