Я работаю над собственным проектом и хочу применить градиентные границы ко всем изображениям в файле MS Word . В моем исследовании я смог вставить только новые картинки с заданными параметрами. Проблема в том, что я не могу понять , как получить доступ и настроить существующие элементы изображения . Я подумал, что если я создаю новые элементы, а затем просто добавляю их в файл, он будет работать, но каким-то образом элемент Drawing сбрасывает ошибку, потому что он принадлежит дереву или чему-то другому.
Ниже приведен фрагмент кода моего мусорного кода.
using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(document, true)) {
MainDocumentPart mainPart = wordprocessingDocument.MainDocumentPart;
int imageCount = mainPart.GetPartsCountOfType<ImagePart>();
Console.Write(imageCount);
Drawing sdtElementDrawing = mainPart.Document.Body.Descendants<Drawing>().First();
Body body1 = new Body();
Paragraph paragraph1 = new Paragraph();
Run run1 = new Run();
DW.Inline inline1 = new DW.Inline();
A.Graphic graphic1 = new A.Graphic();
A.GraphicData graphicData1 = new A.GraphicData();
PIC.Picture picture1 = new PIC.Picture();
PIC.ShapeProperties shapeProperties1 = new PIC.ShapeProperties();
A.NoFill noFill1 = new A.NoFill();
A.Outline outline1 = new A.Outline(new A.GradientFill(
new A.GradientStopList(
new A.GradientStop(
new A.SchemeColor(
new A.LuminanceModulation() { Val = 5000 },
new A.LuminanceOffset() { Val = 95000 }
) { Val = A.SchemeColorValues.Accent1 }
) { Position = 0 },
new A.GradientStop(
new A.SchemeColor(
new A.LuminanceModulation() { Val = 45000 },
new A.LuminanceOffset() { Val = 55000 }
) { Val = A.SchemeColorValues.Accent1 }
) { Position = 74000 },
new A.GradientStop(
new A.SchemeColor(
new A.LuminanceModulation() { Val = 45000 },
new A.LuminanceOffset() { Val = 55000 }
) { Val = A.SchemeColorValues.Accent1 }
) { Position = 83000 },
new A.GradientStop(
new A.SchemeColor(
new A.LuminanceModulation() { Val = 30000 },
new A.LuminanceOffset() { Val = 70000 }
) { Val = A.SchemeColorValues.Accent1 }
) { Position = 100000 }),
new A.LinearGradientFill() {
Angle = 5400000,
Scaled = true
}
));
shapeProperties1.Append(noFill1);
shapeProperties1.Append(outline1);
picture1.Append(shapeProperties1);
graphicData1.Append(picture1);
graphic1.Append(graphicData1);
inline1.Append(graphic1);
sdtElementDrawing.Append(inline1);
run1.Append(sdtElementDrawing);
paragraph1.Append(run1);
mainPart.Document.Body.Append(paragraph1);
}