有人知道是否有办法确保TextBoxes
在RenderTargetBitmap
上很好地扩展吗?
请参见下面的代码,我试图生成其中包含各种不同元素的Canvas的输出文件。
Images
与我的InkCanvas
一样,缩放比例也非常完美,而且丝毫没有质量损失。但是TextBoxes
根本无法很好地扩展。
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
//Produce a PNG output with a pixel size of 5x the onscreen canvas
await renderTargetBitmap.RenderAsync(MaskArea, (int)MaskArea.Width * 5, (int)MaskArea.Height * 5);
var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();
var pixels = pixelBuffer.ToArray();
var displayInformation = DisplayInformation.GetForCurrentView();
var folder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Print", CreationCollisionOption.OpenIfExists);
var file = await folder.CreateFileAsync("Canvas" + ".png", CreationCollisionOption.ReplaceExisting);
using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream);
encoder.BitmapTransform.InterpolationMode = BitmapInterpolationMode.Cubic;
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied, (uint)renderTargetBitmap.PixelWidth, (uint)renderTargetBitmap.PixelHeight, displayInformation.RawDpiX, displayInformation.RawDpiY, pixels);
await encoder.FlushAsync();
}
我真的不明白为什么我的InkCanvas特别完美地呈现,但是TextBoxes却失去了质量。 作为一个脚注,我知道一种解决方法是在以后使用Win2D将文本手动添加到我的输出文件中,但是我只是想先检查一下这里以防丢失。
谢谢