Comment

Comment class

Представляет контейнер для текста комментария.

public sealed class Comment : InlineStory

Конструкторы

Имя Описание
Comment(DocumentBase) Инициализирует новый экземпляр Комментарий класс.
Comment(DocumentBase, string, string, DateTime) Инициализирует новый экземпляр Комментарий класс.

Характеристики

Имя Описание
Ancestor { get; } Возвращает родительский объект Comment. Возвращает 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; } Возвращает true, так как этот узел может иметь дочерние узлы.
IsDeleteRevision { get; } Возвращает значение true, если этот объект был удален в Microsoft Word при включенном отслеживании изменений.
IsInsertRevision { get; } Возвращает значение true, если этот объект был вставлен в Microsoft Word при включенном отслеживании изменений.
IsMoveFromRevision { get; } Возвращает истинный если этот объект был перемещен (удален) в Microsoft Word при включенном отслеживании изменений.
IsMoveToRevision { get; } Возвращает истинный если этот объект был перемещен (вставлен) в Microsoft Word при включенном отслеживании изменений.
LastChild { get; } Получает последний дочерний элемент узла.
LastParagraph { get; } Получает последний абзац в истории.
NextSibling { get; } Получает узел, следующий сразу за этим узлом.
override NodeType { get; } Возвращает NodeType.Комментарий .
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 , CommentRangeStart а такжеCommentRangeEnd Все три объекта должны иметь одинаковый Id ценность.

Comment является узлом встроенного уровня и может быть только потомкомParagraph.

Comment может содержатьParagraph а такжеTable дочерние узлы.

Примеры

Показывает, как добавить комментарий к абзацу.

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");

Смотрите также