【问题标题】:How to display resizing adorner in an image inserted in a RichEditBox?如何在插入 RichEditBox 的图像中显示调整大小的装饰器?
【发布时间】:2020-05-21 23:51:03
【问题描述】:

我正在尝试在 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 中完成我上面描述的内容?

【问题讨论】:

标签: c# uwp windows-10-universal richeditbox


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多