RichEditBox控件

富文本格式是一种跨平台的文档格式,在这种格式的文档中可以编辑文本、图片、链接等内容。通过RichEditBox控件可以对富文本格式的文档进行编辑。

在XAML文件中,RichEditBox控件的用法如下所示:

<RichEditBox.../>

下面通过一个示例演示RichEditBox控件的使用方法。

新建一个Windows应用商店的空白应用程序项目,并命名为RichEditBoxDemo,在MainPage.xaml文件的Grid元素中添加如下代码。

<RichEditBox Name="EditorDocument" FontSize="30" Margin="380,109,542,533" Background="White"/>

<Button Content="打开富文本格式文档" FontSize="20" Click="OpenButton_Click" Margin="380,251,0,457" Width="215" Height="60"/>

<Button Content="保存富文本格式文档" FontSize="20" Click="SaveButton_Click" Margin="595,251,0,457" Width="229" Height="60"/>

在上面的代码中,添加了一个RichEditBox控件和两个Button按钮,RichEditBox控件用于编辑富文本格式的文档。设置两个Button按钮的Content属性值分别为"打开富文本格式文档"和"保存富文本格式文档",两个Button按钮分别用于打开和保存富文本格式的文档。

前台运行效果如图4-20所示。

图4-20 RichEditBox控件的使用

布局好前台界面后,接下来在后台定义一个IRandomAccessStream类型的全局变量randAccStream,用于获取或添加富文本格式文档的内容。使用IRandomAccessStream类需要引用Windows.Storage.Streams命名空间,相关代码如下:

using Windows.Storage.Streams;

public IRandomAccessStream randAccStream ;

接下来为"打开富文本格式文档"按钮添加单击事件处理方法OpenButton_Click,单击此按钮,在系统中上选择富文本格式的文档,并在RichEditBox控件中显示和编辑,代码如下:

private async void OpenButton_Click(object sender, RoutedEventArgs e)

{

//新建一个文件选择器

Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();

//设置文件选择器的初始位置为本地文档库

picker.SuggestedStartLocation =Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;

//为选择器添加需要使用的文档格式为.rtf

picker.FileTypeFilter.Add(".rtf");

//选择文档,将文档中的内容读入到randAccStream变量中

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

randAccStream = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);

//将文档的内容显示到RichEditBox控件中

EditorDocument.Document.LoadFromStream(Windows.UI.Text.TextSetOptions.FormatRtf, randAccStream);

}

在上面的代码中,首先使用FileOpenPicker方法新建一个文件选择器对象picker,设置文件选择器picker对象的SuggestedStartLocation属性使选择器的初始位置定位在本地文档库,接着为选择器添加在选取文档格式时的过滤器格式为".rtf"。使用picker对象的PickSingleFileAsync方法打开文件选取器,并将用户所选取的文件存储到StorageFile类型的对象file中,然后调用file对象的OpenAsync方法打开一个随机访问流将文档的内容存储在randAccStream对象中,最后将TextSetOptions枚举类型的FormatRtf成员作为第一个参数、randAccStream变量作为第二个参数调用EditorDocument控件的Document.LoadFromStream方法,这样便可以将文档的内容显示在RichEditBox控件中。

下面为"保存富文本格式文档"按钮添加SaveButton_Click处理方法,单击此按钮,将RichEditBox控件中的内容保存到文档,代码如下所示:

private void SaveButton_Click(object sender, RoutedEventArgs e)

{

//将RichEditBox控件中的内容保存到文件

EditorDocument.Document.SaveToStream(Windows.UI.Text.TextGetOptions.FormatRtf, randAccStream);

}

在上面的代码中,通过EditorDocument控件的Document.SaveToStream方法将RichEditBox控件中的内容保存到.rtf格式的文档中。

运行程序后,单击"打开富文本格式文档"按钮,选择一个.rtf格式的文档,然后在RichEditBox控件中浏览和编辑内容,如图4-21所示。单击"保存富文本格式文档"按钮后可以将编辑的内容保存到文档中。

图4-21 在RichEditBox控件中编辑文本并保存

Win10系列:C#应用控件基础11的更多相关文章

  1. Win10系列:UWP界面布局基础11

    样式继承 为了使样式便于维护及重复使用,可以在一个样式上引用其他的样式,这就是样式继承.样式继承的方法是:在Style元素的BasedOn属性上使用StaticResource标记扩展来引用被继承的样 ...

  2. Win10系列:JavaScript 控件的使用

    向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...

  3. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...

  4. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  5. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  6. 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree

    原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...

  7. 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试

    原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...

  8. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  9. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

随机推荐

  1. maven pom添加oracle11驱动

    参考这篇文章 https://blog.csdn.net/youren_zt/article/details/60132324 OracleJDBC驱动包是需要Oracle官方授权才能被下载.mave ...

  2. idea快捷键使用

    idea                                 eclipse project                           workspace module     ...

  3. Go 初体验 - channel.2 - 超时机制

    channel 虽然很好用,但是我们也要考虑异常情况,比如:超时 go 语言怎么解决这个超时问题呢? 可以利用 select 语句: select 的用法与 switch 语言非常类似,由 selec ...

  4. RxJava 详解——简洁的异步操作(一)

    随着越来越多的人开始提及 RxJava ,鉴于 RxJava 目前这种既火爆又神秘的现状,写下这篇文章来对 RxJava 做一个相对详细的.针对 Android 开发者的介绍. 这篇文章的目的有两个: ...

  5. Python 进程之间共享数据

    最近遇到多进程共享数据的问题,到网上查了有几篇博客写的蛮好的,记录下来方便以后查看. 一.Python multiprocessing 跨进程对象共享  在mp库当中,跨进程对象共享有三种方式,第一种 ...

  6. c# 文件与流

    1.创建和删除目录 在c#中涉及到输入.输出(i/o)相关操作的API都被放在System.IO命名空间下,或者子命令System.IO.IsolatedStoorage中.对目录进行操作可以使用Di ...

  7. js中获取当天的时间的年月日

    var d=new Date() var day=d.getDate() var month=d.getMonth() + 1 var year=d.getFullYear() document.wr ...

  8. vue 监听变量或对象

    注意:监听的对象必须已经在data中声明了 data: { a: 1, b: 2, c: 3, d: 4, e: { f: { g: 5 } } }, watch: { a: function (va ...

  9. Docker Overlay 工作原理

    Docker 原生Overlay 网络工作流程 如图:有两个Container 独立的容器节点.他们通过Overlay网路进行通信. 网卡设备 Container eth0:eth0它是Overlay ...

  10. Linux curl 网络访问

    Linux curl 网络访问 参数详解 -a/--append 上传文件时,附加到目标文件 -A/--user-agent <string> 设置用户代理发送给服务器 -anyauth ...