Win10系列:C#应用控件基础11
RichEditBox控件
富文本格式是一种跨平台的文档格式,在这种格式的文档中可以编辑文本、图片、链接等内容。通过RichEditBox控件可以对富文本格式的文档进行编辑。
在XAML文件中,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的更多相关文章
- Win10系列:UWP界面布局基础11
样式继承 为了使样式便于维护及重复使用,可以在一个样式上引用其他的样式,这就是样式继承.样式继承的方法是:在Style元素的BasedOn属性上使用StaticResource标记扩展来引用被继承的样 ...
- Win10系列:JavaScript 控件的使用
向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...
- WPF从我炫系列4---装饰控件的用法
这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...
- WPF 模仿 UltraEdit 文件查看器系列一 用户控件
WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...
- C#控件系列--文本类控件
C#控件系列--文本类控件 文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能 Label用来 ...
- 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree
原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...
- 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试
原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...
- WPF编游戏系列 之四 用户控件
原文:WPF编游戏系列 之四 用户控件 在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...
- Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...
随机推荐
- Windbg程序调试系列1-常用命令说明&示例
Windbg程序调试是.Net高级开发需要掌握的必备技能,分析内存泄露.分析高CPU.分析线程阻塞.分析内存对象.分析线程堆栈.Live Dedugging.这个领域可以说一个技能+场景化应用的结合, ...
- 抓包工具 GOOGLE
chrome://net-internals/#events GOOGLE浏览器直接输入
- Python多线程threading的使用
一. threading的参数传递,参数之后的’,‘不能少,此处的’,‘是用来区分此参数作为元组(包含多个参数)来传递的,而不是单个参数传递 #coding:utf- import threading ...
- mysql日期操作
一.获取当前日期时间 1.1.获得当前日期+时间(date+time)函数:now() 1.2.获取当前日期+时间(date+time)函数:sysdate() 注:二者类拟,不同在于now()在执行 ...
- myeclipse集成meavn
环境准备: JDK 1.6 Maven 3.0.4 myeclipse 8.6.1 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Maven是 Apache 下的一个项目,目前最新版 ...
- idea 报错 :error:java:Compilation failed:internal java compiler error
当使用Tomcat运行项目时报错 翻译一下是 错误:Java:编译失败:内部Java编译器错误 这样看来更不理解了 其实原因是Java的版本不一致 查看项目的jdk版本是否一致: file----pr ...
- PHP快速排序(递归)
日常的排序算法中,快速排序是其中一种.实现起来相对简单. 假设有一个数组,有若干(N)个元素(数字且无序),需要对其进行从小到大的排序. 快速排序的思路是怎么样的呢? 取一个中间值,然后,用其他数组元 ...
- UI自动化(八)xpath
由于最新版火狐不在支持FireBug等开发工具,可以通过https://ftp.mozilla.org/pub/firefox/releases/下载49版本以下的火狐就可以增加Firebug等扩展了 ...
- PLSQL远程连接数据库(亲测可试)
一.准备工具: ORALCE数据库.PLSQL连接工具.确认网络正常 (我是在局域网中的,如果不是局域网,需要去ORACLE安装目录下找到sqlnet.ora 在里面找到 SQLNET.AUTHENT ...
- 【Visual Studio 扩展工具】如何在ComponentOne的DataTree中实现RightToLeft布局
概述 C1FlexGrid提供了创建轮廓树的功能,其中可以显示缩进结构,每个节点行旁边都有折叠/展开图标. 然后,用户可以展开和折叠轮廓以查看所需的细节级别. 为此,C1FlexGrid允许您使用其T ...