UWP RichEditBox InsertImage 插入空白
UWP RichEditBox InsertImage inserts a blank
我正在使用 Visual Studio Community 2015 开发 UWP。我创建了一个空白项目,添加了一个按钮和 RichEditBox。我正在尝试从本地资源中在 RichEditBox 中插入图像,但我只插入了一个空白占位符(具有所需的图像大小)。没有抛出任何错误。
下面是代码:
private async void Button_Click(object sender, RoutedEventArgs e)
{
Uri imageUri = new Uri("ms-appx:///Assets/StoreLogo.png");
using (IRandomAccessStream ras = await RandomAccessStreamReference.CreateFromUri(imageUri).OpenReadAsync())
{
box.Document.Selection.InsertImage(64, 64, 0, VerticalCharacterAlignment.Baseline, "img", ras);
}
}
这里是 xaml:
<Button Content="Insert image" Click="Button_Click"/>
<RichEditBox Name="box" Height="200"/>
StoreLogo.png 的构建操作是 "content",我尝试将图像复制到输出目录,但没有任何区别。
这可能是什么问题?正确的做法是什么?
我可以看到你的问题,但是,根据我的经验,常用的方法是使用 StorageFile.OpenAsync
to get IRandomAccessStream
. And set it to ITextRange.InsertImage
。
例如:
Uri imageUri = new Uri("ms-appx:///Assets/StoreLogo.png");
StorageFile imageFile = await StorageFile.GetFileFromApplicationUriAsync(imageUri);
using (IRandomAccessStream fileStream = await imageFile.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
box.Document.Selection.InsertImage(64, 64, 0, VerticalCharacterAlignment.Baseline, "img", fileStream);
}
您可以尝试使用这种方式解决。
我正在使用 Visual Studio Community 2015 开发 UWP。我创建了一个空白项目,添加了一个按钮和 RichEditBox。我正在尝试从本地资源中在 RichEditBox 中插入图像,但我只插入了一个空白占位符(具有所需的图像大小)。没有抛出任何错误。
下面是代码:
private async void Button_Click(object sender, RoutedEventArgs e)
{
Uri imageUri = new Uri("ms-appx:///Assets/StoreLogo.png");
using (IRandomAccessStream ras = await RandomAccessStreamReference.CreateFromUri(imageUri).OpenReadAsync())
{
box.Document.Selection.InsertImage(64, 64, 0, VerticalCharacterAlignment.Baseline, "img", ras);
}
}
这里是 xaml:
<Button Content="Insert image" Click="Button_Click"/>
<RichEditBox Name="box" Height="200"/>
StoreLogo.png 的构建操作是 "content",我尝试将图像复制到输出目录,但没有任何区别。
这可能是什么问题?正确的做法是什么?
我可以看到你的问题,但是,根据我的经验,常用的方法是使用 StorageFile.OpenAsync
to get IRandomAccessStream
. And set it to ITextRange.InsertImage
。
例如:
Uri imageUri = new Uri("ms-appx:///Assets/StoreLogo.png");
StorageFile imageFile = await StorageFile.GetFileFromApplicationUriAsync(imageUri);
using (IRandomAccessStream fileStream = await imageFile.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
box.Document.Selection.InsertImage(64, 64, 0, VerticalCharacterAlignment.Baseline, "img", fileStream);
}
您可以尝试使用这种方式解决。