Unplanned
Last Updated: 13 Dec 2022 07:47 by ADMIN
When one inserts emoji with Ctrl + . and searches, additional characters are added to the RichTextBox.
Unplanned
Last Updated: 13 Dec 2022 07:30 by ADMIN
Created by: Tanya
Comments: 2
Category: RichTextBox
Type: Feature Request
0

This element specifies the presence of a symbol character at the current location in the run’s content. It is similar to the sym element and is used to add emojis to the document content. The symEx element is not defined in the Office Open XML specification but it is part of the extensions of MS Word to the Office Open XML.

Currently one can insert emojis by pressing "Ctrl + .". However, the emojis are inserted in black and white. 

Unplanned
Last Updated: 08 Dec 2022 12:43 by Caesar

 The AddParagraphToSelection method adds the first row of a table when it is the element after the paragraph. 

To workaround this manually select the paragraph:

var para = caret.GetCurrentParagraph();
DocumentPosition pos = new DocumentPosition(doc);
pos.MoveToDocumentElementStart(para);
selection.AddSelectionStart(pos); 
pos.MoveToDocumentElementEnd(para); 
selection.AddSelectionEnd(pos);

 this.radRichTextBox.Delete(false);

Unplanned
Last Updated: 08 Dec 2022 11:53 by ADMIN
ADMIN
Created by: Petya
Comments: 6
Category: RichTextBox
Type: Feature Request
13
Add support for Paragraph and Page borders.

Note: Typing "---" in MS Word and pressing Enter inserts bottom paragraph border with special size (sz="6" in the docx format).

Workaround for inserting visually similar element:

Add a horizontal line using a table with a single border. Here is some code demonstrating how to do this:
----------------------------------------------------------
var document = new RadDocument();
var editor = new RadDocumentEditor(document);

Table table = new Table();
var topBorder = new Telerik.Windows.Documents.Model.Border(1, BorderStyle.Single, Colors.Red);
var borders = new TableBorders(table.Borders.Left, topBorder, table.Borders.Right, table.Borders.Bottom);
table.Borders = borders;

var row = new TableRow();
var dummyCell = new TableCell();
var dummyParagraph = new Paragraph();
dummyParagraph.FontSize = 0;
dummyParagraph.LineSpacing = 0;
dummyParagraph.SpacingAfter = 0;
dummyParagraph.SpacingBefore = 0;
dummyCell.Blocks.Add(dummyParagraph);
row.Cells.Add(dummyCell);
table.Rows.Add(row);

editor.InsertTable(table, shouldInsertParagraphBeforeTable: true);            
this.rtb.Document = document;
----------------------------------------------------
Unplanned
Last Updated: 08 Dec 2022 09:10 by TC
InvalidCastException when importing documents having shapes and images that are grouped
Unplanned
Last Updated: 07 Dec 2022 12:11 by ADMIN
ADMIN
Created by: Petya
Comments: 4
Category: RichTextBox
Type: Feature Request
10
In MS Word, there is special command in Home -> Paragraph -> Borders dropdown -> Horizontal Line, which inserts special drawing similar to 3D horizontal line in a paragraph. Such line should be exported to <hr> tag during HTML export, and respectively <hr> tag should be imported as Horizontal Line.

Note: the representation of the horizontal line in the docx document is as follows: 

        <w:pict>
          <v:rect id="_x0000_i1027" style="width:0;height:1.5pt" o:hralign="center" o:hrstd="t" o:hr="t" fillcolor="#a0a0a0" stroked="f"/>
        </w:pict>

Workaround: 
Currently, you can add a horizontal line using a table with a single border. Here is some code demonstrating how to do this:

----------------------------------------------------------

var document = new RadDocument();
var editor = new RadDocumentEditor(document);

Table table = new Table();
var topBorder = new Telerik.Windows.Documents.Model.Border(1, BorderStyle.Single, Colors.Red);
var borders = new TableBorders(table.Borders.Left, topBorder, table.Borders.Right, table.Borders.Bottom);
table.Borders = borders;

var row = new TableRow();
var dummyCell = new TableCell();
var dummyParagraph = new Paragraph();
dummyParagraph.FontSize = 0;
dummyParagraph.LineSpacing = 0;
dummyParagraph.SpacingAfter = 0;
dummyParagraph.SpacingBefore = 0;
dummyCell.Blocks.Add(dummyParagraph);
row.Cells.Add(dummyCell);
table.Rows.Add(row);
			
editor.InsertTable(table, shouldInsertParagraphBeforeTable: true);            
this.radRichTextBox.Document = document;

----------------------------------------------------
Completed
Last Updated: 07 Dec 2022 11:37 by ADMIN
Release R1 2023
If the position is moved to the end of a paragraph by clicking with the mouse in the empty space just left of the paragraph text, sometimes the subsequent text input (typing, pasting) is inserted at the beginning of the next paragraph, instead of at the end of the clicked one. 

The issue is somewhat random and cannot be reproduced consistently, though it's not hard to reproduce if clicking and typing is fast enough.
Completed
Last Updated: 05 Dec 2022 12:08 by ADMIN
Release R3 2022 SP1
When importing image with invalid ur/base64 encoded data the document won't be opened correctly and an exception will be thrown. Load default image instead of throwing exception and failing to open the document.
Unplanned
Last Updated: 05 Dec 2022 09:43 by Stefano
Created by: Stefano
Comments: 0
Category: RichTextBox
Type: Feature Request
1
Citations should be exported  as blockquotes in HTML
Duplicated
Last Updated: 30 Nov 2022 14:08 by ADMIN
Memory leak in RadRichTextBox when executing on a new thread
Unplanned
Last Updated: 14 Nov 2022 07:59 by ADMIN
In MergeFields the general switch may be used to format the Result Text. The text may appear in lowercase, uppercase, title case and so on.
Unplanned
Last Updated: 10 Nov 2022 15:32 by Caesar
The MS Word has a context menu option Remove Content Control which is missing in the RadRichTextBox UI.
Completed
Last Updated: 10 Nov 2022 06:28 by ADMIN
Release LIB 2022.3.1017 (17 Oct 2022)

The scenario:

We have a document with text inside and we are executing the following steps:

  1. Mouse left button down.
  2. Select part of the text.
  3. Replace the selection with new text programmatically (the text should be with a different length).
  4. Release the left button.

Observed: Before releasing the mouse button the cursor position is correct but after releasing it the cursor position is changed to the initial selection end.

Unplanned
Last Updated: 02 Nov 2022 16:32 by ADMIN
ADMIN
Created by: Alex
Comments: 2
Category: RichTextBox
Type: Feature Request
16

Add support for comparing documents.
			
Unplanned
Last Updated: 31 Oct 2022 12:54 by Caesar

DeleteAnnotationRange fails to execute when the content is uneditable annotation. For example: PermissionRange with a checkbox content control inside.

A possible workaround would be to manually delete the annotation range from the document element tree:

var rangeEnd = rangeStart.End;
var endParent = rangeEnd.Parent;
if (endParent != null)
{
    endParent.Children.Remove(rangeEnd);
}

var parent = rangeStart.Parent;
if (parent != null)
{
    parent.Children.Remove(rangeStart);
}

this.radRichTextBox.UpdateEditorLayout();

Unplanned
Last Updated: 12 Oct 2022 09:35 by Matthias
The exception is thrown while trying to load the image from the URI.
Unplanned
Last Updated: 11 Oct 2022 14:11 by William
When users select content in RadRichTextBox, the selection is automatically extended to include the whole annotation range and they cannot select only a part of it. Allow users to disable that extension.
Completed
Last Updated: 10 Oct 2022 08:54 by ADMIN
Release LIB 2022.3.1010 (10 Oct 2022)
The highlight text button in the ribbon has an invalid icon 
Unplanned
Last Updated: 05 Oct 2022 20:50 by Adam
Setting the margin of the DocumentPrintLayoutPresenter breaks the selection. 
Completed
Last Updated: 05 Oct 2022 13:06 by ADMIN
Created by: Adam
Comments: 1
Category: RichTextBox
Type: Bug Report
0

A user reported a significant performance impact with the RichTextBox in our recent update. The UI hangs repeatedly while typing.

Profiling showed a lot of garbage collections, and profiling highlighted the the Telerik class Telerik.Windows.Controls.MarkupExtensions.DocumentsResourceProvider.


#if NETCORE
        private static Style ThemeStyle
        {
            get
            {
                if (themeStyle == null)
                {
                    themeStyle = GetStyleFromApplicationTheme();
                }
                return themeStyle;
            }
        }

        private static Style GetStyleFromApplicationTheme()
        {
            if (StyleManager.IsEnabled && StyleManager.ApplicationTheme != null)
            {
                var themeName = StyleManager.ApplicationTheme.GetType().Name.Trim('_').ToLower();
                themeName = themeName.Replace("theme", string.Empty);

                var themesGeneric = Application.LoadComponent(new Uri("/Telerik.Windows.Controls.RichTextBox;component/themes/generic.xaml", UriKind.Relative)) as ResourceDictionary;
                if (themesGeneric != null)
                {
                    var currentThemeDictionary = themesGeneric.MergedDictionaries.FirstOrDefault(rd => rd.Source != null && rd.Source.OriginalString.ToLower().Contains(themeName));
                    if (currentThemeDictionary != null)
                    {
                        return currentThemeDictionary[typeof(DocumentsResourceProvider)] as Style;
                    }
                }
            }
            return null;
        }

 

I copied this code into my project to debug it, and found:

  1. themeName is correctly calculated to "windows11".
  2. themesGeneric is correctly loaded from the XAML.
  3. currentThemeDictionary gets null because windows11 isn't included in the merged dictionaries.

As the method returns null, it means themeStyle is always null, and it will try again on the next caller. This code is called repeatedly while typing. Using my code (and reflection) to force this ThemeStyle to Fluent fixes the performance, though obviously is a huge workaround.