私は何時間も探していましたが、これに対する確かな答えを見つけることができないようです。外部データを使用してテキストを編集する必要があるコンテンツコントロールを含む既存のドキュメントがあります。いずれかのコントロールのデータが存在しない場合は、テキストを適切な通知に置き換えて、フォントの色を変更する必要があります。
私はテキストエントリを持っていて、すべてがうまく機能しています。その仕事をしていないように見える唯一の部分は、フォントの色を変更することです。私が持っている現在のコードはエラーを出さず、このメソッドを問題なく実行していますが、完成したドキュメントを見ると、それでも無地の黒いテキストです。
私の色変更方法:(入力は同じタグを持つすべてのコンテンツコントロールのリストです)
public void SetBlueText(List<SdtElement> sdtElement)
{
foreach (SdtElement element in sdtElement)
{
if (element != null)
{
RunProperties runProperties = element.Descendants<RunProperties>().FirstOrDefault();
runProperties.Color = new DocumentFormat.OpenXml.Wordprocessing.Color() { Val = "0EBFE9" };
}
}
}
また、これらの2行をこれだけに単純化すると/同じ効果があります
element.Descendants<RunProperties>().FirstOrDefault().Color =
new DocumentFormat.OpenXml.Wordprocessing.Color() { Val = "0EBFE9" };