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. python安装包API文档

    在python开发过程中,经常会使用第三方包,或者内置的包. 那么这些包,具体有哪些选项,有哪些方法,你知道吗?下面介绍一种万能方法. 使用命令:<注意,命令里python显示的API版本是根据 ...

  3. SQL Server通过BCP进行大批量数据导入导出

    预置条件: 使用sa帐号登录SQL Server Management Studio,右键点击安全性-登录名-数据库用户名属性,设置服务器角色为sysadmin. 删除已存在的存储过程 String ...

  4. 防火墙iptables 设置

    在服务器上架了一个tomcat,指定好端口号,我就开始访问,未果! 公司对服务器(RedHat)端口限制,可谓是滴水不漏! 用iptables 查看防火墙设置: Shell代码 iptables -n ...

  5. 基于Docker的GoldenGate部署

    前言 Docker最近几年异常火爆,主要是因为其方便.快捷.轻量,相对于VM,它不需要占用太多资源,随时可以创建.删除,或在已有image上添加一些软件,再制作成另一个模板image供日后使用.Doc ...

  6. poj2115 C Looooops(exgcd)

    poj2115 C Looooops 题意: 对于C的for(i=A ; i!=B ;i +=C)循环语句,问在k位存储系统中循环几次才会结束. 若在有限次内结束,则输出循环次数. 否则输出死循环. ...

  7. charles License

    ubuntu charles 配置 Ubuntu16.04系统Charles的配置   key1: Registered Name: https://zhile.io License Key: 488 ...

  8. UI自动化(六)js

    HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python.Go.Java.C++等,都是一种 ...

  9. 安卓内嵌H5只展示部分静态页面

    问题: 安卓内嵌H5在华为P9部分机型只展示h5静态页面无法展示接口返回渲染的页面 解决办法: Android  关闭硬件加速   android:hardwareAccelerated=" ...

  10. Java类的加载时机

    但是对于初始化阶段,虚拟机规范则是严格规定了有且只有5种情况必须立即对类进行“初始化”(而加载.验证.准备自然需要在此之前开始):1)遇到new.getstatic.putstatic或invokes ...