我被困在我的应用程序。 我有它的一些元素的网格。 这些元素是按钮,图像和类似的StackPanel和嵌套网格其他控件。 我要救什么呈现给用户作为一个按钮的点击图像,但我不知道如何在此进行。
我可以编写电网和按钮元素到可写的位图? 或者是有一些其他的方式?
总之我希望当用户点击该按钮把我的应用程序屏幕的截屏。 请帮忙。
我被困在我的应用程序。 我有它的一些元素的网格。 这些元素是按钮,图像和类似的StackPanel和嵌套网格其他控件。 我要救什么呈现给用户作为一个按钮的点击图像,但我不知道如何在此进行。
我可以编写电网和按钮元素到可写的位图? 或者是有一些其他的方式?
总之我希望当用户点击该按钮把我的应用程序屏幕的截屏。 请帮忙。
以“屏幕截图”的WinRT应用程序,或者只是控制是不可能的WinRT的。 未实现,而现在他们不这样做的计划。
不幸的是,这是不可能的,在这一点上。 作为@FilipSkakun提到在响应这里 ,你也许能够得到的根据您的要求的方式的一部分。
这已在Windows 8.1改变了一下,可使用RenderTargetBitmap来完成。 RenderTargetBitmap.RenderAsync(的UIElement)将让你得到的像素的任何元素,包括一个页面。
这里有一个例子,将一个PNG保存到文件中使用FileSavePicker指定。
var filePicker = new FileSavePicker();
var file = await filePicker.PickSaveFileAsync();
var renderTargetBitmap = new RenderTargetBitmap();
using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream);
await renderTargetBitmap.RenderAsync(this);
var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();
var pixelBytes = pixelBuffer.ToArray();
encoder.SetPixelData(
BitmapPixelFormat.Bgra8,
BitmapAlphaMode.Ignore,
(uint)renderTargetBitmap.PixelWidth,
(uint)renderTargetBitmap.PixelHeight,
96.0,
96.0,
pixelBytes);
await encoder.FlushAsync();
}
您可以使用Windows Phone 8的下列选项转换任何的UIElement为JPEG图像。
var bitmap = new WriteableBitmap(element,null);
using (MemoryStream s = new MemoryStream())
{
bitmap.SaveJpeg(s, (int)ContentPanel.Width, (int)ContentPanel.Height, 0, 100);
}
我希望这将是对你有所帮助。