Я создал нормальные закладки в словесном файле и затем преобразовал их в скрытую закладку прагматично. Как было сказано выше, скрытые закладки могут создаваться только прагматично, а их имени предшествует «_». При любой итерации списка закладок убедитесь, что для Bookmarks.ShowHidden установлено значение true, в противном случае скрытые закладки не будут отображаться в списке. Ниже приведен код, который я использовал, чтобы скрыть все видимые закладки. В самом конце я также очищаю запись отмены, чтобы убедиться, что пользователь не может отменить сделанные мной изменения. Вы можете создать собственную запись отмены, если хотите, удалить последнее действие.
public static void hideAllBookmark(Document doc)
{
String newName = null;
Range newRange = null;
bool backup = doc.Bookmarks.ShowHidden;
doc.Bookmarks.ShowHidden = false;
for (int i = doc.Bookmarks.Count; i > 0; i--)
{
if (!doc.Bookmarks[i].Name.Substring(0, 1).Equals("_", StringComparison.OrdinalIgnoreCase))
{
newName= "_" + doc.Bookmarks[i].Name;
newRange = doc.Bookmarks[i].Range;
doc.Bookmarks[i].Delete();
doc.Bookmarks.Add(newName, newRange);
}
}
doc.Bookmarks.ShowHidden = backup;
doc.UndoClear();
}