How to reproduce: simply configure Polish keyboard and press [ALT GR] + [C], the added text is "©ć". The expected behavior would be to only add "ć" Workaround: Handle the CommandExecuting event: private void RadRichTextEditor1_CommandExecuting(object sender, Telerik.WinForms.Documents.RichTextBoxCommands.CommandExecutingEventArgs e) { if (e.Command is InsertTextCommand && e.CommandParameter.ToString() == "©") { e.Cancel = true; } }
How to reproduce: check the attached project and video Workaround: create a custom RichTextEditorRibbonBar Public Class CustomRichTextEditorRibbonBar Inherits RichTextEditorRibbonBar Protected Overrides Sub HandleFontStylePropertiesOnCurrentEditingStyleChanged() If Me.dropDownListFont.BindingContext Is Nothing Then Me.dropDownListFont.BindingContext = Me.BindingContext End If If Me.dropDownListFontSize.BindingContext Is Nothing Then Me.dropDownListFontSize.BindingContext = Me.BindingContext End If MyBase.HandleFontStylePropertiesOnCurrentEditingStyleChanged() End Sub End Class
When you load a HTML file where the image is not loaded properly and you try to export RadRichTextEditor's document to a pdf, an error occurs. Workaround: If the image doesn't exist you can skip loading in the document. Thus, exporting to pod at a later moment won't produce an error. You can use the HtmlImportSettings.LoadImageFromUrl event and handle the image loading: Sub New() ' This call is required by the designer. InitializeComponent() Dim provider As HtmlFormatProvider = New HtmlFormatProvider() Dim htmlImportSettings As HtmlImportSettings = New HtmlImportSettings() AddHandler htmlImportSettings.LoadImageFromUrl, AddressOf LoadImageFromUrl provider.ImportSettings = htmlImportSettings Using inputStream As FileStream = File.OpenRead("..\..\Email HTML.html") Me.RadRichTextEditor1.Document = provider.Import(inputStream) End Using End Sub Private Sub LoadImageFromUrl(sender As Object, e As LoadImageEventArgs) e.Handled = True End Sub
To reproduce: - Drop RadRichTextEditor to a form. - Set the theme to FluentDark. Workaround: radRichTextEditor1.ChangeTextForeColor(Color.White); or public void SetBackColor() { this.radRichTextEditor1.RichTextBoxElement.BackColor = Color.White; Theme theme = ThemeRepository.FindTheme("TelerikMetroBlue"); foreach (var styleGroup in theme.StyleGroups) { foreach (PropertySettingGroup settingGroup in styleGroup.PropertySettingGroups) { if (settingGroup.Selector.Value == "Telerik.WinControls.RichTextEditor.UI.Page") { foreach (PropertySetting property in settingGroup.PropertySettings) { if (property.Name == "BackColor") { property.Value = System.Drawing.Color.White; } } } if (settingGroup.Selector.Value == "Telerik.WinControls.RichTextEditor.UI.HeaderFooterContainer") { foreach (PropertySetting property in settingGroup.PropertySettings) { if (property.Name == "OverlayColor") { property.Value = System.Drawing.Color.White; } } } } } }
To reproduce: add a RadRichTextEditor with ribbon UI. Set the RichTextEditorRibbonBar's theme to Fluent at design time. When you run the application you will notice that the theme is not properly applied to the backstage view. Workaround: ThemeResolutionService.ApplicationThemeName = "Fluent";
Workaround: public TextEditorRadForm() { InitializeComponent(); ((RadForm)this.radRichTextEditor1.RichTextBoxElement.InsertCaptionDialog).Controls["radRichTextEditorLabel"].Text = ""; }
************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at Telerik.WinForms.Documents.UI.UIProviders.WatermarkUIProvider.Arrange(UILayerUpdateContext uILayerUpdateContext) at Telerik.WinForms.Documents.UI.Layers.ProviderUILayerBase.ArrangeChildren() at Telerik.WinForms.Documents.UI.DocumentPrintPresenter.ArrnageUILayers() at Telerik.WinForms.Documents.UI.DocumentPrintPresenter.MeasureOverride(SizeF availableSize) at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize) at Telerik.WinControls.RadElement.Measure(SizeF availableSize) at Telerik.WinControls.RadElement.MeasureChildren(SizeF availableSize) at Telerik.WinControls.RichTextEditor.UI.FrameworkElement.MeasureOverride(SizeF availableSize) at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize) at Telerik.WinControls.RadElement.Measure(SizeF availableSize) at Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayout() at Telerik.WinForms.Documents.UI.DocumentPrintPresenter.Telerik.WinForms.RichTextEditor.IDocumentEditorPresenter.UpdateLayout() at Telerik.WinForms.RichTextEditor.RadRichTextBox.<>c__DisplayClass3.<UpdateEditorLayout>b__2() at Telerik.WinForms.RichTextEditor.RadRichTextBox.UpdateEditorLayout(Boolean focusCarret, Boolean updateCaretSize, Boolean async) at Telerik.WinForms.RichTextEditor.RadRichTextBox.set_ActiveEditorPresenter(IDocumentEditorPresenter value) at Telerik.WinForms.RichTextEditor.RadRichTextBox.Telerik.WinControls.UI.IPrintable.BeginPrint(RadPrintDocument sender, PrintEventArgs args) at Telerik.WinControls.UI.RadPrintDocument.OnBeginPrint(PrintEventArgs e) at System.Drawing.Printing.PrintDocument._OnBeginPrint(PrintEventArgs e) at System.Drawing.Printing.PrintController.Print(PrintDocument document) at System.Drawing.Printing.PrintDocument.Print() at System.Windows.Forms.PrintPreviewControl.ComputePreview() at System.Windows.Forms.PrintPreviewControl.CalculatePageInfo() at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks() To reproduce: please refer to the attached gi file demonstrating how to replicate the problem with the Demo application. Workaround: private void radRichTextEditor1_CommandExecuting(object sender, Telerik.WinForms.Documents.RichTextBoxCommands.CommandExecutingEventArgs e) { if (e.Command is ChangeIntegratedWatermarkTypeCommand && this.radRichTextEditor1.LayoutMode!= Telerik.WinForms.Documents.Model.DocumentLayoutMode.Paged) { e.Cancel = true; } }
If you press keys as the following order with English keyboard in Korean IME, you can get Korean letters - 가나다라.
'rkskekfk'
rk => 가
sk => 나
ek => 다
fk => 라
When I use Korean letters, second or third letter disappeared - 가다라.
To reproduce: - Paste some text with a barcode font in a RadRichTextBox. - Export to a pdf document. - In the pdf document the text is not displayed as barcode.
To reproduce: - Import the following string using the HtmlFormatProvider: "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n </head>\r\n <body text=\"#000000\" bgcolor=\"#FFFFFF\">\r\n Hej\r\n\r\n <title>Sv: Tekniska </title>\r\n \r\n\r\n <br>\r\n <pre>-- \r\nMvh Anders\r\n<a class=\"moz-txt-link-abbreviated\" href=\"http://www.abc.se\">www.abc.se</a></pre>\r\n </body>\r\n</html>" Workaround: - Put a space or between the </a> and </pre> tags.
Steps to reproduce: 1. Create a new project 2. Drop a RadRichTextEditor on the form 3. Run the project 4. Type some text 5. Press Ctrl+R to align the text right 6. Press Ctrl+L to align the text left. The text is left aligned, but the right aligned text is not cleared till the control is invalidated.
html tables cannot be properly pasted in word when imported table size is defined in "pt". consider adding the a table like this as well: <html> <body> <table border="1"> <tbody> <tr> <td>A</td> <td>B</td> <td>C</td> </tr> <tr> <td>A1</td> <td>B1</td> <td>C1</td> </tr> </tbody> </table> </body> </html>
To reproduce: - Create a new winforms project. - Drop a RadRichTextEditor on the form. - Drop a button on the form. - In the button Click event add: radRichTextEditor1.ShowSpellCheckingDialog(); - Run the project. - Click the button - a message is displayed "The spelling check is complete". - Type some text with a spelling error in the rich text editor. - Click the button again - a System.InvalidOperationException exception occurs. Workaround: radRichTextEditor1.RichTextBoxElement.SpellCheckingDialog = new SpellCheckingDialog();
Description and workaround: It appears that Outlook produces different RTF contents when using its different Copy commands. In some cases the RTF string produced by Outlook contains empty spans which is not a valid element in our implementation. To handle that case, you can subscribe to the CommandExecuting event to capture the Paste command before it was executed, strip the empty spans, and then modify the clipboard contents with a valid RTF string. Additionally, when you try to delete the text of pasted hyperlinks using backspace, an exception will be thrown at some point (for example, after pasting the link \\server\folder1\somefile.txt and deleting the dot). The following code snippet demonstrates how to handle deleting pasted links: Private Sub radRichTextEditor1_CommandExecuting(sender As Object, e As CommandExecutingEventArgs) Handles radRichTextEditor1.CommandExecuting If TypeOf e.Command Is DeleteCommand Me.RadRichTextEditor1.RichTextBoxElement.InvalidateMeasure(true) Me.RadRichTextEditor1.RichTextBoxElement.UpdateLayout() End If End Sub The following code snippet demonstrates how to handle removing empty spans: Private Sub radRichTextEditor1_CommandExecuting(sender As Object, e As CommandExecutingEventArgs) Handles radRichTextEditor1.CommandExecuting If Not (TypeOf e.Command Is PasteCommand) Then Return End If Dim docString As String = Nothing Dim docObj As Object = Clipboard.GetData("Rich Text Format") If docObj IsNot Nothing AndAlso docObj.[GetType]() = GetType(String) Then docString = DirectCast(docObj, String) End If Dim document As RadDocument = Nothing Using stream As New MemoryStream() Dim writer As New StreamWriter(stream) writer.Write(docString) writer.Flush() stream.Seek(0, SeekOrigin.Begin) Try document = New RtfFormatProvider().Import(stream) Catch ex As Exception System.Diagnostics.Debug.WriteLine("Error reading document from clipboard:" & vbLf + ex.ToString()) End Try End Using If document IsNot Nothing Then Dim emptySpans As New List(Of Span)() For Each span As var In document.EnumerateChildrenOfType(Of Span)() If [String].IsNullOrEmpty(span.Text) Then emptySpans.Add(span) End If Next If emptySpans.Count = 0 Then Return End If For Each span As var In emptySpans span.Parent.Children.Remove(span) Next Dim modifiedRtf As String = New RtfFormatProvider().Export(document) Clipboard.SetData("Rich Text Format", modifiedRtf) End If End Sub
To reproduce: - Create a document that contains a numbered list (set different font size for the list). - Export it to html and import it back. - You will notice that the numbers are larger the the other text.
To reproduce: use the following code snippet. The attached screenshot illustrates the missing border. Note: It seems that the RadRichTextEditor remains in Portrait orientation although the RadPrintDocument.DefaultPageSettings.Landscape property is set to true. This issue can be replicated if you specify the PreferredWidth property in pixels in such a way that the table fits in A4 format (wider side). The A4 size print measures 21.0 x 29.7cm. private void Form1_Load(object sender, EventArgs e) { RadDocument document = new RadDocument(); document.LayoutMode = Telerik.WinForms.Documents.Model.DocumentLayoutMode.Paged; Section sec = new Section(); sec.PageOrientation = PageOrientation.Landscape; sec.PageSize = PaperTypeConverter.ToSize(PaperTypes.A4); document.Sections.Add(sec); Paragraph para = new Paragraph(); Table table = new Table(); Border b = new Border(Telerik.WinForms.Documents.Model.BorderStyle.Single, System.Drawing.Color.Black); TableBorders tb = new TableBorders(b); table.Borders = tb; sec.Blocks.Add(table); //first row TableRow tableRow = new TableRow(); table.AddRow(tableRow); //cell 0,0 TableCell cell = new TableCell(); cell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent ,20); tableRow.Cells.Add(cell); cell.Blocks.Add(para); Span span = new Span("Cell 0,0"); para.Inlines.Add(span); //cell 0,1 cell = new TableCell(); cell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent ,80); tableRow.Cells.Add(cell); //second row tableRow = new TableRow(); table.AddRow(tableRow); //cell 1,0 cell = new TableCell(); cell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent ,20); tableRow.Cells.Add(cell); para = new Paragraph(); cell.Blocks.Add(para); span = new Span("Cell 1,0"); para.Inlines.Add(span); //cell 1,1 cell = new TableCell(); cell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent ,80); tableRow.Cells.Add(cell); radRichTextEditor1.Document = document; Telerik.WinControls.UI.RadPrintDocument printDocument = new Telerik.WinControls.UI.RadPrintDocument(); printDocument.AssociatedObject = this.radRichTextEditor1; printDocument.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0); printDocument.DefaultPageSettings.Landscape = true; System.Drawing.Printing.PaperSize paperSize = new System.Drawing.Printing.PaperSize(); paperSize.RawKind = 9; printDocument.DefaultPageSettings.PaperSize = paperSize; this.radRichTextEditor1.Print(true, printDocument); }
To reproduce: - Add RadRichTextEditor and RichTextEditorRibbonBar to a form. - Start the application and add some text. - Change the font size with the ribbon bar. - Select the text and open the mini toolbar.
To reproduce Write a word in an RightToLeft language and then type "." You will notice that the dot is moved to the end of the word.