Comment

Comment class

表示评论文本的容器。

public sealed class Comment : InlineStory

构造函数

姓名 描述
Comment(DocumentBase) 初始化 评论类.
Comment(DocumentBase, string, string, DateTime) 初始化 评论类.

特性

姓名 描述
Ancestor { get; } 返回父评论对象。为顶级评论返回 null。
Author { get; set; } 返回或设置评论的作者姓名。
ChildNodes { get; } 获取该节点的所有直接子节点。
Count { get; } 获取此节点的直接子节点数。
CustomNodeId { get; set; } 指定自定义节点标识符。
DateTime { get; set; } 获取发表评论的日期和时间。
virtual Document { get; } 获取该节点所属的文档。
Done { get; set; } 获取或设置指示注释已被标记为完成的标志。
FirstChild { get; } 获取节点的第一个子节点。
FirstParagraph { get; } 获取故事的第一段。
Font { get; } 提供对该对象的锚字符的字体格式的访问。
HasChildNodes { get; } 如果此节点有任何子节点,则返回 true。
Id { get; } 获取评论标识符。
Initial { get; set; } 返回或设置与特定评论关联的用户的首字母缩写。
override IsComposite { get; } 返回真,因为该节点可以有子节点。
IsDeleteRevision { get; } 如果在启用更改跟踪时在 Microsoft Word 中删除了此对象,则返回 true。
IsInsertRevision { get; } 如果在启用更改跟踪时将此对象插入 Microsoft Word,则返回 true。
IsMoveFromRevision { get; } 返回 真的如果启用更改跟踪时此对象在 Microsoft Word 中被移动(删除)。
IsMoveToRevision { get; } 返回 真的如果启用更改跟踪时在 Microsoft Word 中移动(插入)此对象。
LastChild { get; } 获取节点的最后一个子节点。
LastParagraph { get; } 获取故事的最后一段。
NextSibling { get; } 获取紧跟此节点的节点。
override NodeType { get; } 返回 NodeType.Comment.
Paragraphs { get; } 获取作为故事直接子级的段落集合。
ParentNode { get; } 获取此节点的直接父节点。
ParentParagraph { get; } 检索父级Paragraph这个节点的.
PreviousSibling { get; } 获取紧接在此节点之前的节点。
Range { get; } 返回一个 范围表示此节点中包含的文档部分的对象。
Replies { get; } 返回一个集合Comment作为指定注释的直接子级的对象。
override StoryType { get; } 返回 StoryType.Comments.
Tables { get; } 获取作为故事直接子级的表的集合。

方法

姓名 描述
override Accept(DocumentVisitor) 接受访客。
AddReply(string, string, DateTime, string) 对此评论添加回复。
AppendChild(Node) 将指定节点添加到该节点的子节点列表的末尾。
Clone(bool) 创建节点的副本。
CreateNavigator() 保留供系统使用。 IXPathNavigable.
EnsureMinimum() 如果最后一个孩子不是段落,则创建并附加一个空段落。
GetAncestor(NodeType) 获取指定的第一个祖先NodeType.
GetAncestor(Type) 获取指定对象类型的第一个祖先。
GetChild(NodeType, int, bool) 返回与指定类型匹配的第 N 个子节点。
GetChildNodes(NodeType, bool) 返回与指定类型匹配的子节点的实时集合。
GetEnumerator() 为在该节点的子节点上的每个样式迭代提供支持。
override GetText() 获取该节点及其所有子节点的文本。
IndexOf(Node) 返回子节点数组中指定子节点的索引。
InsertAfter(Node, Node) 在指定参考节点之后立即插入指定节点。
InsertBefore(Node, Node) 在指定的参考节点之前插入指定的节点。
NextPreOrder(Node) 根据前序树遍历算法获取下一个节点。
PrependChild(Node) 将指定节点添加到此节点的子节点列表的开头。
PreviousPreOrder(Node) 根据前序树遍历算法获取上一个节点。
Remove() 从父级中移除自身。
RemoveAllChildren() 移除当前节点的所有子节点。
RemoveAllReplies() 删除对此评论的所有回复。
RemoveChild(Node) 移除指定的子节点。
RemoveReply(Comment) 删除对此评论的指定回复。
RemoveSmartTags() 删除所有SmartTag当前节点的后代节点。
SelectNodes(string) 选择与 XPath 表达式匹配的节点列表。
SelectSingleNode(string) 选择与 XPath 表达式匹配的第一个节点。
SetText(string) 这是一种方便的方法,可以轻松设置评论的文本。
ToString(SaveFormat) 将节点的内容导出为指定格式的字符串。
ToString(SaveOptions) 使用指定的保存选项将节点的内容导出为字符串。

评论

注释是锚定到文本区域或文本位置的注释。 评论可以包含任意数量的块级内容。

如果一个Comment对象自行发生,注释锚定到 的位置Comment目的。

要将注释锚定到文本区域,需要三个对象:Comment, CommentRangeStartCommentRangeEnd.所有三个对象都需要共享相同的 Id价值。

Comment是一个内联级节点,只能是Paragraph.

Comment可以包含ParagraphTable子节点。

例子

显示如何向段落添加注释。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Hello world!");

Comment comment = new Comment(doc, "John Doe", "JD", DateTime.Today);
builder.CurrentParagraph.AppendChild(comment);
builder.MoveTo(comment.AppendChild(new Paragraph(doc)));
builder.Write("Comment text.");

Assert.AreEqual(DateTime.Today, comment.DateTime);

// 在 Microsoft Word 中,我们可以在文档正文中右键单击该评论进行编辑或回复。 
doc.Save(ArtifactsDir + "InlineStory.AddComment.docx");

演示如何向文档添加评论,然后对其进行回复。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Comment comment = new Comment(doc, "John Doe", "J.D.", DateTime.Now);
comment.SetText("My comment.");

// 将注释放在文档正文中的一个节点上。
// 此注释将显示在其段落的位置,
// 在页面的右侧边距之外,并用虚线将其连接到其段落。
builder.CurrentParagraph.AppendChild(comment);

// 添加一个回复,该回复将显示在其父评论下方。
comment.AddReply("Joe Bloggs", "J.B.", DateTime.Now, "New reply");

// 评论和回复都是评论节点。
Assert.AreEqual(2, doc.GetChildNodes(NodeType.Comment, true).Count);

// 不回复其他评论的评论是“顶级的”。他们没有祖先的评论。
Assert.Null(comment.Ancestor);

// 回复有一个祖先的顶级评论。
Assert.AreEqual(comment, comment.Replies[0].Ancestor);

doc.Save(ArtifactsDir + "Comment.AddCommentWithReply.docx");

也可以看看