Working with Content Controls
This article shows some examples of how you can access a content control and modify their properties from the code. In general, the content controls are marked with annotations and you can manipulate them as such. Detailed information is available here: Manipulating Annotations
Manipulate existing content controls
Get the content controls.
The content controls can be retrieved by using the GetAnnotationMarkersOfType method. This is demonstrated in the following example.
Example 1: Get all Content Controls
IEnumerable<SdtRangeStart> content_controls = this.radRichTextEditor1.Document.GetAnnotationMarkersOfType<SdtRangeStart>();
foreach (var item in content_controls)
{
Console.WriteLine("Type: {0} ID:{1}", item.SdtProperties.Type, item.SdtProperties.ID);
}
Dim content_controls As IEnumerable(Of SdtRangeStart) = Me.RadRichTextEditor1.Document.GetAnnotationMarkersOfType(Of SdtRangeStart)()
For Each item In content_controls
Console.WriteLine("Type: {0} ID:{1}", item.SdtProperties.Type, item.SdtProperties.ID)
Next
Set content controls properties.
This example shows how you can iterate the items and add an item to a existing ComboBox content control.
Example 2: Adding items to a ComboBox or a DropDownList
foreach (var item in content_controls)
{
if (item.SdtProperties.Type == SdtType.ComboBox)
{
ComboBoxProperties properties = item.SdtProperties as ComboBoxProperties;
ListItem newItem = new System.Windows.Documents.ListItem();
newItem.DisplayText = "New Item Text";
properties.Items.Add(newItem);
}
}
For Each item In content_controls
If item.SdtProperties.Type = SdtType.ComboBox Then
Dim properties As ComboBoxProperties = TryCast(item.SdtProperties, ComboBoxProperties)
Dim newItem As New ListItem()
newItem.DisplayText = "New Item Text"
properties.Items.Add(newItem)
End If
Next
Insert new content controls
New content controls can be inserted trough one of the overloads of the InsertStructuredDocumentTag method accessible from RadRichTextEditor and RadDocumentEditor:
Example 3: Inserting a content control
this.radRichTextEditor1.InsertStructuredDocumentTag();
// OR
RadDocumentEditor editor = new RadDocumentEditor(this.radRichTextEditor1.Document);
editor.InsertStructuredDocumentTag();
Me.RadRichTextEditor1.InsertStructuredDocumentTag()
'OR
Dim editor As RadDocumentEditor = New RadDocumentEditor(Me.RadRichTextEditor1.Document)
editor.InsertStructuredDocumentTag()
Example 4: Inserting a content control using content control type
this.radRichTextEditor1.InsertStructuredDocumentTag(SdtType.CheckBox);
// OR
RadDocumentEditor editor = new RadDocumentEditor(this.radRichTextEditor1.Document);
editor.InsertStructuredDocumentTag(SdtType.CheckBox);
Me.RadRichTextEditor1.InsertStructuredDocumentTag(SdtType.CheckBox)
'OR
Dim editor As RadDocumentEditor = New RadDocumentEditor(Me.RadRichTextEditor1.Document)
editor.InsertStructuredDocumentTag(SdtType.CheckBox)
Example 5: Inserting a content control using content control properties
SdtProperties sdtProperties = new SdtProperties(SdtType.RichText)
{
Alias = "AliasName",
Lock = Lock.SdtContentLocked,
};
this.radRichTextEditor1.InsertStructuredDocumentTag(sdtProperties);
// OR
RadDocumentEditor editor = new RadDocumentEditor(this.radRichTextEditor1.Document);
editor.InsertStructuredDocumentTag(sdtProperties);
Dim sdtProperties As SdtProperties = New SdtProperties(SdtType.RichText) With {
Alias = "AliasName",
Lock = Lock.SdtContentLocked
}
Me.RadRichTextEditor1.InsertStructuredDocumentTag(sdtProperties)
'OR
Dim editor As RadDocumentEditor = New RadDocumentEditor(Me.RadRichTextEditor1.Document)
editor.InsertStructuredDocumentTag(sdtProperties)