DCWriter文本编辑器软件使用说明 - 图文 下载本文

编辑器配置Copy命令用于复制数据到系统剪切板,配置Cut命令执行剪切操作,配置Paste命令用于粘贴系统剪切板中的数据,配置SpecifyPaste命令用于进行选择性粘贴。

剪切和粘贴操作对文档内容带来的影响都可以使用Undo、Redo命令来重做和撤销。

4.5.1.1.2. OLE拖拽

编辑器控件支持OLE拖拽操作。当编辑器控件的AllowDrop属性值为true,则支持OLE拖拽将数据复制到文档中;当编辑器控件的AllowDragContent数值为为true时,则支持OLE拖拽操作将数据复制或者移动到编辑器的其他部分或者其他程序中。

在执行OLE拖拽操作时,用户按下Ctl键则执行OLE拖拽复制操作,否则执行OLE拖拽移动操作。

OLE拖拽操作支持的数据格式和使用系统剪切板时支持的数据格式一样。

目前版本的DCWriter编辑器有一个已知的缺陷,那就是在同一个编辑器中执行OLE拖拽移动操作后,需要执行两次Undo命令才能完全撤销操作。

4.5.1.2. 数据过滤

编辑器控件支持数据过滤,从数据插入到编辑器的文档中时,开发者可以编程对数据进行过滤。这里的外界数据包括粘贴所得的数据、OLE拖拽所得的数据、用户手工输入的文档数据或者应用程序调用编辑器命令插入的数据。

DCWriter定义了一个签名为“public delegate void FilterValueEventHandler( object sender , FilterValueEventArgs args )”的委托。开发者只要创建一个委托对象,然后添加到AppHost中即可启用。

这个委托的第二个参数类型为DCSoft.Writer.Dom.FilterValueEventArgs,它的成员有: public DCSoft.Writer.Dom.InputValueSource Source{get;set;} 数据来源,可选值有

Clipboard:数据来自Windows系统剪切板。 UI:数据来自用户界面的用户输入。 Unknow:未知。

public string SourceName{get;set;}

数据来源的名称。

public InputValueType Type{get;set;}

数据类型,可选值有:

Text:纯文本数据。 RTF:RTF文档数据。 Image:图片数据。 FileName:文件名。

Dom:DCWriter文档DOM数据。

public object Value{get;set;} 要处理的数据。

public bool Cancel{get;set;}

取消相关数据操作的标记。

开发者可以使用以下代码来实现数据过滤: //使用这行代码来注册启动数据过滤器 ctl.AppHost.Services.AddService( typeof(DCSoft.Writer.Dom.FilterValueEventHandler ), new DCSoft.Writer.Dom.FilterValueEventHandler(MyFilterData)); // 数据过滤代码 private void MyFilterData(object sender, FilterValueEventArgs args) { 用户代码。 } 这样开发者就能实现数据过滤功能,比如在电子病历中,只能同一个人的病历之间的文本可以复制粘贴,而不同人的病历文本是不能粘贴的。使用数据过滤就能实现这个功能。

4.5.2. WPF开发

编辑器控件可以用于WPF开发。以下XAML代码即可将一个编辑器控件添加到WPF窗体中: