我想以编程方式锁定所有内容控件,以便用户无法删除它们。
我正在使用以下代码,但我的问题是在某些情况下我null
在调用elem.SdtProperties.ChildElements.First<WP.Lock>()
.
有人可以帮我完成下面提到的代码吗?
static void MakeContentControlsNonDeletable()
{
using (P.WordprocessingDocument wordDoc =
P.WordprocessingDocument.Open(@"c:\XYZ.docx", true))
{
IEnumerable<WP.SdtElement> elements =
wordDoc.MainDocumentPart.Document.Descendants<WP.SdtElement>();
foreach (WP.SdtElement elem in elements)
{
if (elem.SdtProperties != null)
{
WP.Lock l = elem.SdtProperties.ChildElements.First<WP.Lock>();
if (l == null)
{
//Please help here
//Please help here
//Please help here
//Please help here
}
if (l.Val != WP.LockingValues.SdtContentLocked && l.Val != WP.LockingValues.SdtLocked)
{
Console.WriteLine("Unlock content element...");
l.Val = WP.LockingValues.SdtLocked;
}
}
}
}