Witam !
W jaki sposób można bez nadmiaru pracy zastosować przypisać jakąś właściwość do obiektu wielokrotnie ?
Już tłumaczę :
mamy takie coś :
StyleDefinitionsPart stylePart = mainPart.AddNewPart<StyleDefinitionsPart>();
RunProperties rPr = new RunProperties();
DocumentFormat.OpenXml.Wordprocessing.Color color = new DocumentFormat.OpenXml.Wordprocessing.Color() { Val = "000000" };
RunFonts rFont = new RunFonts();
rFont.Ascii = "Times New Roman";
rPr.Append(color);
rPr.Append(rFont);
rPr.Append(new Bold());
rPr.Append(new FontSize() { Val = "32" });
Style style = new Style();
style.StyleId = "MyHeading1";
style.Append(new Name() { Val = "My Heading 1" });
style.Append(new BasedOn() { Val = "Heading1" });
style.Append(new NextParagraphStyle() { Val = "Normal" });
style.Append(rPr);
stylePart.Styles = new Styles();
stylePart.Styles.Append(style);
stylePart.Styles.Save();
ParagraphProperties heading_pPr1 = new ParagraphProperties();
heading_pPr1.ParagraphStyleId = new ParagraphStyleId() { Val = "MyHeading1" };
No i jeśli chcemy ten styl przypisać do dwóch paragrafów tak
paragraph1.Append(heading_pPr1);
paragraph2.Append(heading_pPr1);
Program wykrzacza się z takim czymś :
Cannot insert the OpenXmlElement "newChild" because it is part of a tree.
Rozumiem, ze nie można wstawić tego stylu bo już raz został wstawiony do drzewa, ale jak zastosować go do dwóch paragrafów ? Czy to znaczy ze do każdego paragrafu muszę tworzyć nowy obiekt stylu ? Tak samo dzieje się z właściwościami komórek w tabeli. W jaki sposób to ominąć ?
Znalazłem sposób ale moim zdaniem jest to karkołomne ponieważ wygląda to tak :
paragraph2.Append(new ParagraphProperties() { ParagraphStyleId = new ParagraphStyleId() {Val="MyHeading1" } });
Co wy o tym sądzicie ?