1

我正在尝试在 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);
                    }
                }
            }
        }

插入图像后,我可以调整它的大小,但是当我单击图像时,光标不会改变,调整大小的装饰器根本不会显示,这使得调整大小的任务对用户不太友好。换句话说,我想要的如下图所示:

调整装饰器的大小

我最初尝试调整我在这个问题中为 WPF 找到的解决方案,但不幸的是 UWP 没有装饰器的概念。然后,我尝试调整我为 Winforms 找到的解决方案,但这依赖于对 RichTextBox 控件进行子类化并覆盖其WndProc方法,这在 UWP 中也是不可能的。

那么,我怎样才能在 UWP 中完成我上面描述的内容呢?

4

1 回答 1

0

显示在 UWP 应用程序的 RichEditBox 中插入的图像的大小调整装饰器。

UWP 中没有可以调整插入到 RichEditBox 中的图像大小的 api,需要自定义一个控件并将图像包裹在其中。通过拖动控件来调整图像大小。或者在 wpf 或 winform 中编程,然后使用桌面桥将其转换为 UWP 应用程序。

于 2020-02-06T07:49:00.517 回答