Кто-нибудь знает, есть ли способ убедиться, что 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, в частности, отрисовывает идеально, но текстовые поля теряют качество.В качестве сноски я знаю, что одним из способов было бы вручную добавить текст в мой выходной файл впоследствии с помощью Win2D, но я просто подумал, что сначала проверю здесь, если что-то упустил.
Спасибо
Вывод (Вы можете нажать на изображение, чтобы увидеть потерю качества)