//// This code is part of Document Solutions for Word demos.// Copyright (c) MESCIUS inc. All rights reserved.//usingSystem;usingSystem.Drawing;usingGrapeCity.Documents.Word; namespaceDsWordWeb.Demos{// This sample demonstrates how to add content controls to a document. // The code is the same as in the ContentControls example, but// uses the (new in v6.2) content creation helper methods,// which in most cases yield more robust and compact code.// Lines of code replaced by the new helper method calls are preserved// in the code of this example for reference, commented out with '//old:' comment.publicclassContentControlsHelpers {publicGcWordDocumentCreateDocx() {var doc = newGcWordDocument();// Heading://old: var p = doc.Body.Paragraphs.Add("Content Control Examples");//old: p.Style = doc.Styles[BuiltInStyleId.Heading1];var p = doc.Body.AddParagraph("Content Control Examples", doc.Styles[BuiltInStyleId.Heading1]);//old: p = doc.Body.Paragraphs.Add("Below are some examples of content controls. Open the document in MS Word to see the controls in action.");//old: p.Style = doc.Styles[BuiltInStyleId.Subtitle]; p = doc.Body.AddParagraph("Below are some examples of content controls. Open the document in MS Word to see the controls in action.", doc.Styles[BuiltInStyleId.Subtitle]); //// ContentControlType.DropdownList:////old: p = doc.Body.Paragraphs.Add("ContentControlType.DropdownList");//old: p.Style = doc.Styles[BuiltInStyleId.Heading2]; doc.Body.AddParagraph("ContentControlType.DropdownList", doc.Styles[BuiltInStyleId.Heading2]);//old: p = doc.Body.Paragraphs.Add("Select a fruit from the dropdown list control: ");//old: p.Style = doc.Styles[BuiltInStyleId.Subtitle]; doc.Body.AddParagraph("Select a fruit from the dropdown list control: ", doc.Styles[BuiltInStyleId.Subtitle]); //old: var dropDownListCtrl = p.GetRange().ContentControls.Add(ContentControlType.DropdownList, false);var dropDownListCtrl = p.AddContentControl(ContentControlType.DropdownList, false); dropDownListCtrl.DropDownItems.Add(newDropDownItem("apple", "Apples")); dropDownListCtrl.DropDownItems.Add(newDropDownItem("orange", "Oranges")); dropDownListCtrl.DropDownItems.Add(newDropDownItem("banana", "Bananas")); dropDownListCtrl.DropDownItems.Add(newDropDownItem("pear", "Pears")); // Add placeholder to the building blocks gallery:BuildingBlock dropDownPlaceholder = doc.GlossaryDocument.BuildingBlocks.Add("dropdownlist-placeholder", "General", type: BuildingBlockType.ContentControlPlaceholder); //set placeholder text//old: Paragraph pp = dropDownPlaceholder.Body.Paragraphs.Add("Click to pick");var pp = dropDownPlaceholder.Body.AddParagraph("Click to pick");//apply style to placeholder element pp.GetRange().Runs.First.Style = p.ParentBody.Document.Styles[BuiltInStyleId.Strong];//...and change its color pp.GetRange().Runs.First.Font.Color.RGB = Color.DarkSeaGreen; //old: p.GetRange().Runs.Add(" The green 'Click to pick' text on the left is a placeholder, replaced with the picked fruit when you've selected one."); p.AddRun(" The green 'Click to pick' text on the left is a placeholder, replaced with the picked fruit when you've selected one."); // Set control border color: dropDownListCtrl.Color.RGB = Color.OrangeRed;// Set control text color: dropDownListCtrl.Font.Color.RGB = Color.DarkOrange; // Use building blocks placeholder on the DropDownList contentControl. dropDownListCtrl.ShowingPlaceholderText = true; dropDownListCtrl.PlaceholderText = dropDownPlaceholder; //// ContentControlType.Text////old: p = doc.Body.Paragraphs.Add("ContentControlType.Text");//old: p.Style = doc.Styles[BuiltInStyleId.Heading2]; doc.Body.AddParagraph("ContentControlType.Text", doc.Styles[BuiltInStyleId.Heading2]);//old: p = doc.Body.Paragraphs.Add("ContentControlType.Text allows entering a single run of text in the control. " +//old: "All text in a Text control has the same formatting. In this case we use 'Block Text' paragraph style.");//old: p.Style = doc.Styles[BuiltInStyleId.Subtitle]; doc.Body.AddParagraph("ContentControlType.Text allows entering a single run of text in the control. " +"All text in a Text control has the same formatting. In this case we use 'Block Text' paragraph style.", doc.Styles[BuiltInStyleId.Subtitle]); //old: var textCtrl = doc.Body.ContentControls.Add(ContentControlType.Text, false);var textCtrl = doc.Body.AddContentControl(ContentControlType.Text, false);//old: p = textCtrl.Content.GetRange().Paragraphs.Add(//old: "This is the default content of the only run in the only paragraph in a Text content control.",//old: doc.Styles[BuiltInStyleId.BlockText]); p = textCtrl.Content.AddParagraph("This is the default content of the only run in the only paragraph in a Text content control.", doc.Styles[BuiltInStyleId.BlockText]); // This code demonstrates that only one paragraph, and only one run in it,// can exist in a Text control. Both statements under 'try' clauses will fail:try { textCtrl.Content.GetRange().Paragraphs.Add("Another paragraph (cannot be added)."); }catch (InvalidContentControlSingleChildException) {Console.WriteLine("Cannot have more than one paragraph to a Text content control."); }try { p.GetRange().Runs.Add("Another run (cannot be added)."); }catch (InvalidContentControlSingleChildException) {Console.WriteLine("Cannot have more than one run to a Text content control."); } //// ContentControlType.RichText////old: p = doc.Body.Paragraphs.Add("ContentControlType.RichText");//old: p.Style = doc.Styles[BuiltInStyleId.Heading2]; doc.Body.AddParagraph("ContentControlType.RichText", doc.Styles[BuiltInStyleId.Heading2]);//old: p = doc.Body.Paragraphs.Add("ContentControlType.RichText allows having multiple paragraphs, with multiple runs, " +//old: "in a single RichText content control.");//old: p.Style = doc.Styles[BuiltInStyleId.Subtitle]; doc.Body.AddParagraph("ContentControlType.RichText allows having multiple paragraphs, with multiple runs, " +"in a single RichText content control.", doc.Styles[BuiltInStyleId.Subtitle]); //old: var richtext = doc.Body.ContentControls.Add(ContentControlType.RichText, false);var richtext = doc.Body.AddContentControl(ContentControlType.RichText, false);//old: var p1 = richtext.Content.GetRange().Paragraphs.Add("First paragraphs in the ");var p1 = richtext.Content.AddParagraph("First paragraphs in the ");//old: p1.GetRange().Runs.Add("RichText ", doc.Styles[BuiltInStyleId.Strong]); p1.AddRun("RichText ", doc.Styles[BuiltInStyleId.Strong]);//old: p1.GetRange().Runs.Add("content control."); p1.AddRun("content control.");//old: var p2 = richtext.Content.GetRange().Paragraphs.Add("Second paragraphs in the ");var p2 = richtext.Content.AddParagraph("Second paragraphs in the ");//old: p2.GetRange().Runs.Add("RichText ", doc.Styles[BuiltInStyleId.Strong]); p2.AddRun("RichText ", doc.Styles[BuiltInStyleId.Strong]);//old: p2.GetRange().Runs.Add("content control."); p2.AddRun("content control."); p2.Style = doc.Styles[BuiltInStyleId.IntenseQuote]; //// ContentControlType.BuildingBlockGallery////old: p = doc.Body.Paragraphs.Add("ContentControlType.BuildingBlockGallery");//old: p.Style = doc.Styles[BuiltInStyleId.Heading2]; doc.Body.AddParagraph("ContentControlType.BuildingBlockGallery", doc.Styles[BuiltInStyleId.Heading2]);//old: p = doc.Body.Paragraphs.Add("ContentControlType.BuildingBlockGallery allows selecting items from " +//old: "building block galleries. Here we allow to select an equation from the built-in Word equations gallery.");//old: p.Style = doc.Styles[BuiltInStyleId.Subtitle]; doc.Body.AddParagraph("ContentControlType.BuildingBlockGallery allows selecting items from " +"building block galleries. Here we allow to select an equation from the built-in Word equations gallery.", doc.Styles[BuiltInStyleId.Subtitle]); // We create a content control that allows selecting equations from // the built-in Word equations gallery://old: var galleryControl = doc.Body.ContentControls.Add(ContentControlType.BuildingBlockGallery);var galleryControl = doc.Body.AddContentControl(ContentControlType.BuildingBlockGallery); galleryControl.BuildingBlockCategory = "Built-In"; galleryControl.BuildingBlockGallery = "Equations"; //// ContentControlType.Group////old: p = doc.Body.Paragraphs.Add("ContentControlType.Group");//old: p.Style = doc.Styles[BuiltInStyleId.Heading2]; doc.Body.AddParagraph("ContentControlType.Group", doc.Styles[BuiltInStyleId.Heading2]);//old: p = doc.Body.Paragraphs.Add("ContentControlType.Group allows createing groups with modifiable " +//old: "and constant (non-modifiable) content. Here we create a checkbox with a non-modifiable label on its right.");//old: p.Style = doc.Styles[BuiltInStyleId.Subtitle]; p = doc.Body.AddParagraph("ContentControlType.Group allows createing groups with modifiable " +"and constant (non-modifiable) content. Here we create a checkbox with a non-modifiable label on its right.", doc.Styles[BuiltInStyleId.Subtitle]); // Group content control prevent some kinds of modifications of children controls.// Add a group content control that will be used as parent container for// child controls://old: var groupControl = doc.Body.ContentControls.Add(ContentControlType.Group, false);var groupControl = doc.Body.AddContentControl(ContentControlType.Group, false); // Note how to add ContentControls inside another ContentControl:// Do not use groupControl.GetRange().ContentControls.Add(...),// instead use groupControl.Content.GetRange().ContentControls.Add(...)://old: p = groupControl.Content.GetRange().Paragraphs.Add(); p = groupControl.Content.AddParagraph();//old: var checkBox = p.GetRange().ContentControls.Add(ContentControlType.CheckBox, true);var checkBox = p.AddContentControl(ContentControlType.CheckBox, true); checkBox.Title = "Grouped checkbox"; checkBox.Checked = true; //old: p.GetRange().Runs.Add(" Text to the right of the checkbox"); p.AddRun(" Text to the right of the checkbox"); // Date://old: groupControl.Content.GetRange().Paragraphs.Add("Finally, we add a ContentControlType.Date control that shows the current date."); groupControl.Content.AddParagraph("Finally, we add a ContentControlType.Date control that shows the current date."); // Add a Date control//old: var date = groupControl.Content.GetRange().ContentControls.Add(ContentControlType.Date, false);var date = groupControl.Content.AddContentControl(ContentControlType.Date, false); date.DateFormat = "u"; date.Date = Util.TimeNow(); // In the Group contentControl, we have:// - a checkbox content control// - a text to its left// - a paragraph// - a date content control// Due to being inside Group content control, text cannot be changed unless// you disable grouping (Word->Developer->Group and select Ungroup). // Done:return doc; } }}