我正在尝试对UWP应用程序中RichEditBox中插入的图像显示调整大小的装饰物。
到目前为止,我可以使用以下代码插入图像:
private async void InsertImage()
{
var picker = new FileOpenPicker { SuggestedStartLocation = PickerLocationId.PicturesLibrary };
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".png");
var files = await picker.PickMultipleFilesAsync();
if (files.All(file => file != null))
{
foreach (var file in files)
{
using (var stream = await file.OpenAsync(FileAccessMode.Read))
{
var image = new BitmapImage();
await image.SetSourceAsync(stream);
textEditor.Document.Selection.InsertImage(image.PixelWidth / 2, image.PixelHeight / 2, 0, VerticalCharacterAlignment.Baseline,
file.DisplayName, stream);
}
}
}
}
一旦插入图像,我就可以调整它的大小,但是当我单击图像时,光标不会改变,并且调整大小的修饰符也不会显示,这使得调整大小的任务不是非常用户友好。换句话说,下图显示了我想要的内容:
我最初尝试调整在此question中为WPF找到的解决方案,但不幸的是,UWP没有装饰者的概念。然后,我尝试适应为Winforms找到的solution,但是它依赖于RichTextBox控件的子类并覆盖其WndProc
方法,在UWP中也是不可能的。
所以,我怎么能完成上面在UWP中描述的内容?
将调整大小的修饰符显示在插入到RichEditBox中的图像中UWP应用程序。
[没有api可以调整在UWP的RichEditBox中插入的图像的大小,您需要自定义控件并将图像包装在其中。通过拖动控件来调整图像大小。或使用wpf或winform进行编程,然后使用desktop bridge将其转换为UWP应用。