To reproduce: please refer to the attached sample project and follow the steps in the gif file. 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; } }
************** 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; } }
Workaround: If possible set the layout mode to FlowNoWrap this.radRichTextEditor1.Document.LayoutMode = Telerik.WinForms.Documents.Model.DocumentLayoutMode.FlowNoWrap;
To reproduce: run the project and maximize the form. When you enter some text you will notice that the text is cut off. Workaround: use paged layout.
Workaround: public TextEditorRadForm() { InitializeComponent(); ((RadForm)this.radRichTextEditor1.RichTextBoxElement.InsertCaptionDialog).Controls["radRichTextEditorLabel"].Text = ""; }
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";
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; } } } } } }
Use attached to reproduce.
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
Workaround: private void RadRichTextEditor1_CommandExecuting(object sender, Telerik.WinForms.Documents.RichTextBoxCommands.CommandExecutingEventArgs e) { if (e.Command is SaveCommand) { DocumentPosition initial = this.radRichTextEditor1.Document.CaretPosition; DocumentPosition start = new DocumentPosition(initial); DocumentPosition end = new DocumentPosition(initial); var spans = this.radRichTextEditor1.Document.EnumerateChildrenOfType<Span>(); foreach (var span in spans) { if (span.FontStyle != FontStyle.Regular) { continue; } start.MoveToInline(span); end.MoveToEndOfDocumentElement(span); this.radRichTextEditor1.Document.Selection.AddSelectionStart(start); this.radRichTextEditor1.Document.Selection.AddSelectionEnd(end); this.radRichTextEditor1.RichTextBoxElement.Commands.ChangeFontFamilyCommand.Execute("Calibri"); } this.radRichTextEditor1.Document.CaretPosition.MoveToPosition(initial); } }
Add only a RichTextEditorRibbonBar without any other control on the form. If you run the application you will notice that it loads more than one second. We should investigate if it is possible and how to improve the initialization time.
In certain fonts the caret is drawn on part of the last inputted character
To reproduce: - Open the demo application. - Go to the Table Styles example. - Open the TableBorders dialog from the context menu and hit reset all.
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
The new functionality should allow the developer to load custom fonts in the memory and then use them in RadRichTextEditor.
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; } }
Se the attached video to reproduce.