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. Ch01 基础 - 练习

    1. 在Scala REPL 中键入3.,然后按Tab键.有哪些方法可以被应用? scala> 3. %   *   -   >    >>    ^              ...

  2. cocos2d-js:游戏进入后台和返回游戏的事件捕获和处理

    cocos2d-js 3.x处理 游戏置入后台和返回游戏的事件处理很方便 只需通过事件管理类cc.eventManager,自定义一个监听事件即可 代码如下 cc.eventManager.addCu ...

  3. JavaBean-EL-JSTL-MVC

    JavaBean规范 类必须使用public修饰     必须保证有公共无参数构造器.  (一般就是可以通过反射轻松的创建对象)  包含了属性的操作(给属性赋值,获取属性值). JavaBean中的成 ...

  4. JSP 修改不能编辑

    JSP做修改功能时候,有的时候,某些值要设置成只读状态,不能修改,刚开始做的时候,出现了修改之后值传不到后台的情况,由于刚出来工作不久,不是很了解这个.思索了半天,才发现是由于这个属性的缘故.浪费了大 ...

  5. input光标大小

    最近在做项目忘记密码页面时,input光标大小需要统一.同时也需要兼容ie8浏览器. 总结如下: IE:不管该行有没有文字,光标高度与font-size一致. FF:该行有文字时,光标高度与font- ...

  6. .net core webapi+vue 跨域访问

    最近在做一个前后端分离的示例,以下代码完美解决跨域的问题 一.后端服务 1.首先我们建一个.net core webapi的项目 2.项目引用Microsoft.AspNetCore.Cors 包 3 ...

  7. 模块_pip、os模块

    一个python文件就是一个模块 1.标准模块 python自带的模块就是标准模块,也就是可以直接import进来的就是标准模块 import json import random import da ...

  8. Python文件学习

    Python文件学习 文章 Python文件学习 open函数 基本的用法模式:file_object=open('',access_mode='r',buffering=-1) 其中access_m ...

  9. ElasticSearch(七) Elasticsearch在Centos下搭建可视化服务

    要想可视化ElasticSearch,就需要安装一些插件,安装插件的前提是安装所依赖的环境,比如java,maven等,本篇博文就不再走那些流程了.没安装的童鞋可以看我的ElasticSearch栏目 ...

  10. UI自动化(十)selenium定位

    浏览器操作   1 2 3 4 5 6 7 8 # 刷新 driver.refresh()   # 前进 driver.forward()   # 后退 driver.back() 获取标签元素   ...