/// <summary> /// Insert statement with a combobox into current document within richtextbox at current caret position. /// </summary> /// <param name="precedeStatement"></param> public void InsertStatementWithComboBox(Statement precedeStatement) { //get position where element should be added TextPointer insertionPosition = CaretPosition.GetInsertionPosition(LogicalDirection.Forward); ComboBoxStatement statementBox = new ComboBoxStatement(precedeStatement); //attach event statementBox.ComboBoxDropDownOpened += OnComboBoxStatementDropDownOpened; statementBox.ComboBoxDropDownClosed += OnComboBoxStatementDropDownClosed; InlineUIContainer myInlineUIContainer = new InlineUIContainer(statementBox, insertionPosition); //move caret position TextPointer newCaretPosition = insertionPosition.GetNextInsertionPosition(LogicalDirection.Forward); if (newCaretPosition != null) { CaretPosition = newCaretPosition; } }