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 -> ...
随机推荐
- 三、UI开发之核心基础——约束(入门)
先学个新技能:添加图片控件Image View iOS的图片控件是ImageView,ImageView通过提前载入用户指定的图片资源来显示相应的图片. 所以图片控件的关键信息有3个: 1. Imag ...
- textarea 标签的使用
<textarea rows="行数" cols="列数">默认出现文本</textarea> 阻止拉伸:style="res ...
- 退出unity运行
public void GetExit()//退出运行 { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false;//用于退 ...
- CentOS 7 服务端口表
# Note that it is presently the policy of IANA to assign a single well-known# port number for both T ...
- 设置div 高度 总结
如果将div 的height 设置为固定的像素值,在不同分辨率的显示屏上,会看到div 在浏览器上的高度不一致.可以以百分比的形式设置div 的高度.注意,这个百分比是针对div 的上一层标签而言的, ...
- 后端解决 微信H5支付 商户参数格式错误 方法
问题如图: 后端解决方法: 在返回mweb_url 后不要直接访问这个链接,在当前页面用js window.location.href = mweb_url 这样跳转就可以了
- poj2115 C Looooops(exgcd)
poj2115 C Looooops 题意: 对于C的for(i=A ; i!=B ;i +=C)循环语句,问在k位存储系统中循环几次才会结束. 若在有限次内结束,则输出循环次数. 否则输出死循环. ...
- D2欧拉路,拓扑排序,和差分约束
第一题:太鼓达人:BZOJ3033 题意:给出k,求一个最长的M位01串,使其从每一个位置向后走k个得到 的M个k位01串互不相同(最后一个和第一个相邻,即是一个环).输出 字典序最小的答案. 2 ≤ ...
- 通过 UC2000-VG-32G设备呼叫不进号问题排查
1.登陆设备管理页面: 呼叫发起时,呼叫状态显示振铃,但是不进号. 2.查看设备cdr. 3.得出结论:NO CARRIER 由于号码频繁呼叫次数太多运营商对其死锁.
- 王之泰201771010131《面向对象程序设计(java)》第二周学习总结
王之泰201771010131<面向对象程序设计(java)>第二周学习总结 第一部分:理论知识学习部分 第三章 第三章内容主要为Java语言的基础语法,主要内容如下 1.基础知识 1.1 ...