Completed
Last Updated: 20 Oct 2015 11:41 by ADMIN
Workaround:

public partial class Form1 : Form
{
    private Telerik.WinForms.RichTextEditor.RichTextBoxUI.Dialogs.SpellCheckingDialog spellDlg;

    public Form1()
    {
        InitializeComponent();
    }

    private void radButton1_Click(object sender, EventArgs e)
    {
        this.spellDlg = new Telerik.WinForms.RichTextEditor.RichTextBoxUI.Dialogs.SpellCheckingDialog();
        Telerik.WinForms.Documents.UI.Extensibility.SpellCheckingUIManager manager = new Telerik.WinForms.Documents.UI.Extensibility.SpellCheckingUIManager(this.radRichTextEditor1.RichTextBoxElement);

        FieldInfo fi = this.spellDlg.GetType().GetField("suggestionsListBox", BindingFlags.NonPublic | BindingFlags.Instance);
        RadListControl suggestionListBox = fi.GetValue(this.spellDlg) as RadListControl;

        suggestionListBox.DataBindingComplete -= suggestionListBox_DataBindingComplete;
        suggestionListBox.DataBindingComplete += suggestionListBox_DataBindingComplete;
        this.spellDlg.ShowDialog(manager, this.radRichTextEditor1.RichTextBoxElement);
    }

    private void suggestionListBox_DataBindingComplete(object sender, ListBindingCompleteEventArgs e)
    {
        if (((RadListControl)sender).Items.Count == 0)
        {
            FieldInfo fiBtnChange = this.spellDlg.GetType().GetField("buttonChange", BindingFlags.NonPublic | BindingFlags.Instance);
            RadButton btnChange = fiBtnChange.GetValue(this.spellDlg) as RadButton;
            btnChange.Enabled = false;

            FieldInfo fiBtnChangeAll = this.spellDlg.GetType().GetField("buttonChangeAll", BindingFlags.NonPublic | BindingFlags.Instance);
            RadButton btnChangeAll = fiBtnChangeAll.GetValue(this.spellDlg) as RadButton;
            btnChangeAll.Enabled = false;
        }
    }
}
Completed
Last Updated: 19 Oct 2015 14:21 by ADMIN
Currently, the scrollbars width is calculated only according to  SystemInformation.VerticalScrollBarWidth.

Workaround:
class MyRTE : RadRichTextEditor
{
    protected override void CreateChildItems(RadElement parent)
    {
        var rte = new MyRTEElement();
        typeof(RadRichTextEditor).GetField("richTextBox", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(this, rte);
        parent.Children.Add(rte);

    }
}
public class MyRTEElement : RadRichTextBox
{
    protected override SizeF ArrangeOverride(SizeF finalSize)
    {
        base.ArrangeOverride(finalSize);


        System.Drawing.RectangleF finalRect = new System.Drawing.RectangleF(System.Drawing.PointF.Empty, finalSize);
        System.Drawing.RectangleF clientRect = finalRect;

        System.Drawing.RectangleF horizontalScrollRect = System.Drawing.RectangleF.Empty;
        System.Drawing.RectangleF verticalScrollRect = System.Drawing.RectangleF.Empty;
        System.Drawing.RectangleF presenterArea = clientRect;

        if (this.VerticalScrollBar.Visibility != Telerik.WinControls.ElementVisibility.Collapsed)
        {
            verticalScrollRect = new System.Drawing.RectangleF(
                new System.Drawing.PointF(finalRect.Right - this.VerticalScrollBar.Size.Width, finalRect.Top),
                new System.Drawing.SizeF(this.VerticalScrollBar.Size.Width, finalRect.Height));
        }

        if (this.HorizontalScrollBar.Visibility != Telerik.WinControls.ElementVisibility.Collapsed)
        {
            horizontalScrollRect = new System.Drawing.RectangleF(
                new System.Drawing.PointF(finalRect.Left, finalRect.Bottom - this.HorizontalScrollBar.Size.Height),
                new System.Drawing.SizeF(finalRect.Width, this.HorizontalScrollBar.Size.Height));
            if (this.VerticalScrollBar.Visibility != Telerik.WinControls.ElementVisibility.Collapsed)
            {
                horizontalScrollRect.Width -= this.VerticalScrollBar.Size.Width;
                verticalScrollRect.Height -= this.HorizontalScrollBar.Size.Height;
            }
        }

        presenterArea.Width -= verticalScrollRect.Width;
        presenterArea.Height -= horizontalScrollRect.Height;

        if (this.RightToLeft)
        {
            horizontalScrollRect = Telerik.WinControls.Layouts.LayoutUtils.RTLTranslateNonRelative(horizontalScrollRect, clientRect);
            verticalScrollRect = Telerik.WinControls.Layouts.LayoutUtils.RTLTranslateNonRelative(verticalScrollRect, clientRect);
            presenterArea = Telerik.WinControls.Layouts.LayoutUtils.RTLTranslateNonRelative(presenterArea, clientRect);
        }

        this.VerticalScrollBar.Arrange(verticalScrollRect);
        this.HorizontalScrollBar.Arrange(horizontalScrollRect);
        var contentPresenter = typeof(RadRichTextBox).GetField("contentPresenter", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(this) as ContentControl;
        contentPresenter.Arrange(presenterArea);

        return finalSize;
    }
    protected override SizeF MeasureOverride(SizeF availableSize)
    {
        base.MeasureOverride(availableSize);

        System.Drawing.SizeF horizontalScrollSize = System.Drawing.SizeF.Empty;
        System.Drawing.SizeF verticalScrollSize = System.Drawing.SizeF.Empty;
        System.Drawing.SizeF presenterSize = availableSize;

        if (this.VerticalScrollBar.Visibility != Telerik.WinControls.ElementVisibility.Collapsed)
        {
            verticalScrollSize = new System.Drawing.SizeF(this.VerticalScrollBar.Size.Width, availableSize.Height);
        }

        if (this.HorizontalScrollBar.Visibility != Telerik.WinControls.ElementVisibility.Collapsed)
        {
            horizontalScrollSize = new System.Drawing.SizeF(availableSize.Width, this.HorizontalScrollBar.Size.Height);
        }

        presenterSize.Width -= verticalScrollSize.Width;
        presenterSize.Height -= horizontalScrollSize.Height;
        //presenterSize = base.GetClientRectangle(presenterSize).Size;

        this.VerticalScrollBar.Measure(verticalScrollSize);
        this.HorizontalScrollBar.Measure(horizontalScrollSize);

        var contentPresenter = typeof(RadRichTextBox).GetField("contentPresenter", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(this) as ContentControl;
        contentPresenter.Measure(presenterSize);

        return availableSize;
    }
    
}

Completed
Last Updated: 23 Aug 2016 09:03 by ADMIN
Workaround: use a custom RichTextEditorRibbonBar

Public Class CustomRichTextEditorRibbonBar
Inherits RichTextEditorRibbonBar

    Dim headerText As String
    Protected Overrides Function GetInsertTableItems() As RadItemCollection
        Dim collection As RadItemCollection = MyBase.GetInsertTableItems()
        Dim headerItem As RadMenuInsertTableItem = TryCast(collection(0), RadMenuInsertTableItem)
        headerText = "My Header Text"
        Dim fi As FieldInfo = GetType(RadMenuInsertTableItem).GetField("header", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim header As LightVisualElement = fi.GetValue(headerItem)
        header.Text = headerText
        AddHandler header.TextChanged, AddressOf header_TextChanged
        Return collection
    End Function

    Private Sub header_TextChanged(sender As Object, e As EventArgs)
        Dim lve As LightVisualElement = TryCast(sender, LightVisualElement)
        If lve.Text = "Insert Table" Then
            lve.Text = headerText
        End If
    End Sub
End Class
Completed
Last Updated: 23 Aug 2016 09:29 by ADMIN
Please refer to the attached screenshot. It is not possible to localize the marked label.

Workaround:

 Sub New()
     InitializeComponent() 
     Me.RadRichTextEditor1.RichTextBoxElement.InsertHyperlinkDialog = New CustomInsertHyperlinkDialog()
 End Sub

 Public Class CustomInsertHyperlinkDialog
     Inherits InsertHyperlinkDialog
     Protected Overrides Sub OnLoad(e As EventArgs)
         MyBase.OnLoad(e)
         Me.Controls("radLabel4").Text = "My address"
     End Sub
 End Class

Completed
Last Updated: 02 Sep 2016 10:00 by ADMIN
Completed
Last Updated: 15 Sep 2015 07:32 by ADMIN
To reproduce: use the code snippet below. Please refer to the attached screenshot.

public Form1()
{
    RichTextBoxLocalizationProvider.CurrentProvider = new MyRichTextBoxLocalizationProvider();
    InitializeComponent();
}

public class MyRichTextBoxLocalizationProvider : RichTextBoxLocalizationProvider
{
    public override string GetLocalizedString(string id)
    { 

        return base.GetLocalizedString(id);
    }
}

Workaround: 
Modify the XML file containing all the strings RichTextBoxLocalizationProvider.CurrentProvider = RichTextBoxLocalizationProvider.FromFile(@"C:\RichTextBoxStrings.xml");. You can download a XML file that contains all the currently used strings from here: http://www.telerik.com/docs/default-source/ui-for-winforms/richtextboxstrings.zip?sfvrsn=2
Completed
Last Updated: 07 Jun 2016 15:32 by ADMIN
When the specified length of the stream is larger than the actual one, Adobe throws errors and removes the image.

Workaround:

Set the format provider settings:

PdfFormatProvider provider = new PdfFormatProvider();
PdfExportSettings exportSettings = new PdfExportSettings();
exportSettings.ContentsDeflaterCompressionLevel = 9;
exportSettings.ImagesDeflaterCompressionLevel = 9;
provider.ExportSettings = exportSettings;
Completed
Last Updated: 20 Oct 2016 15:42 by ADMIN
Completed
Last Updated: 20 Oct 2015 08:59 by ADMIN
To reproduce:
1.Use the provided xml file in the following article: http://www.telerik.com/help/winforms/richtexteditor-localization.html and change these strings:

"Documents_ParagraphPropertiesDialog_TextAlignment_Center": "Mittig";
"Documents_ParagraphPropertiesDialog_TextAlignment_Justify": "Block";
"Documents_ParagraphPropertiesDialog_TextAlignment_Left": "Links";
"Documents_ParagraphPropertiesDialog_TextAlignment_Right": "Rechts";

2.Afterwards,  specify the RichTextBoxLocalizationProvider.CurrentProvider by loading the modified file. 
3.Run the application, select some paragraph and try to change its alignment. As a result when the ParagraphPropertiesDialog is opened, incorrect alignment text is displayed in the drop-down. If you select a new value a handled ArgumentException is thrown and the paragraph is not aligned at all.

Workaround: use a custom ParagraphPropertiesDialog:
public Form1()
{
    RichTextBoxLocalizationProvider.CurrentProvider = RichTextBoxLocalizationProvider.FromFile(@"..\..\RichTextBoxStrings - Copy.xml");
     
    InitializeComponent();

    this.radRichTextEditor1.RichTextBoxElement.ParagraphPropertiesDialog = new CustomDialog();
}


public partial class CustomDialog : ParagraphPropertiesDialog
{
    public CustomDialog()
    {
        InitializeComponent();
       
        FieldInfo fi = typeof(ParagraphPropertiesDialog).GetField("radButtonOK", 
            BindingFlags.Instance | BindingFlags.NonPublic);
        RadButton btn = fi.GetValue(this) as RadButton;
     
        btn.MouseDown += btn_MouseDown;
    }
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e); 
        if (selectedItem != null)
        {
            ButtonAlignement.Text = selectedItem.Text;
        }
    }

    public RadDropDownButton ButtonAlignement
    {
        get
        { 
            FieldInfo fi = typeof(ParagraphPropertiesDialog).GetField("radDropDownButtonAlignement",
                BindingFlags.Instance | BindingFlags.NonPublic);
            RadDropDownButton radDropDownButtonAlignement = fi.GetValue(this) as RadDropDownButton;
            return radDropDownButtonAlignement;
        }
    }

    RadMenuItem selectedItem = null;
    RadDropDownButton radDropDownButtonAlignement = null;

    private void btn_MouseDown(object sender, MouseEventArgs e)
    {
        foreach (RadMenuItem item in ButtonAlignement.Items)
        {
            if (item.Text == ButtonAlignement.Text)
            {
                selectedItem = item;
                break;
            }
        }
        if (selectedItem != null)
        {
            ButtonAlignement.Text = selectedItem.Tag.ToString();
        }
    }
}
Completed
Last Updated: 25 Apr 2017 06:26 by ADMIN
To reproduce:
- Add some comments and try to navigate through them.
- Try add or show/hide the comments while the cursor is in one of the comments.

Workaround:
Create a custom RichTextEditorRibbonBar
and override the following methods:

Public Class MyRichTextEditorRibbonBar
    Inherits RichTextEditorRibbonBar

    Protected Overrides Sub ButtonNewComment_Click(sender As Object, e As EventArgs)
        Dim command As New InsertCommentCommand(Me.AssociatedRichTextEditor.RichTextBoxElement)
        Me.ExecuteCommand(command)

    End Sub

    Protected Overrides Sub ButtonDeleteComment_Click(sender As Object, e As EventArgs)
        Dim command As New DeleteCommentCommand(Me.AssociatedRichTextEditor.RichTextBoxElement)
        Me.ExecuteCommand(command)
    End Sub

    Protected Overrides Sub ButtonPreviousComment_Click(sender As Object, e As EventArgs)
        Dim command As New GoToPreviousCommentCommand(Me.AssociatedRichTextEditor.RichTextBoxElement)
        Me.ExecuteCommand(command)
    End Sub

    Protected Overrides Sub ButtonNextComment_Click(sender As Object, e As EventArgs)
        Dim command As New GoToNextCommentCommand(Me.AssociatedRichTextEditor.RichTextBoxElement)
        Me.ExecuteCommand(command)
    End Sub

    Protected Overrides Sub ToggleButtonShowHideComments_ToggleStateChanged(sender As Object, args As StateChangedEventArgs)

        Dim command As New ToggleCommentsCommand(Me.AssociatedRichTextEditor.RichTextBoxElement)
        Me.ExecuteCommand(command)
    End Sub

    Protected Overrides Sub ButtonDeleteAllComments_Click(sender As Object, e As EventArgs)
        Dim command As New DeleteAllCommentsCommand(Me.AssociatedRichTextEditor.RichTextBoxElement)
        Me.ExecuteCommand(command)
    End Sub

    Protected Overrides Sub HandleDocumentCommandExecuted(document As RadDocument)
        MyBase.HandleDocumentCommandExecuted(document)

        Dim hasComments As Boolean = Me.AssociatedRichTextEditor.Document.EnumerateChildrenOfType(Of CommentRangeStart)().Count() > 0

        Me.buttonPreviousComment.Enabled = hasComments
        Me.buttonNextComment.Enabled = hasComments
        Me.buttonDeleteComment.Enabled = hasComments
        Me.buttonDeleteAllComments.Enabled = hasComments
    End Sub

End Class
Completed
Last Updated: 27 Oct 2015 07:34 by ADMIN
When some commands are executed the RibbonUI is not updated.
For example:
private void radButton1_Click(object sender, EventArgs e)
{
    ToggleCommentsCommand command = new ToggleCommentsCommand(radRichTextEditor1.RichTextBoxElement);
    command.Execute();
}

Workaround:
var button = ribbonBar1.GetType().GetField("toggleButtonShowHideComments", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this.ribbonBar1) as RadToggleButtonElement;
button.ToggleState = (radRichTextEditor1.RichTextBoxElement.ShowComments == true) ? ToggleState.On : ToggleState.Off;          
Completed
Last Updated: 21 Apr 2016 19:55 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: RichTextEditor
Type: Bug Report
0
To reproduce:

RadDocument document = new RadDocument();
Section section = new Section();
Paragraph p = new Paragraph();
Span span = new Span();
span.Text ="test" + Environment.NewLine + "test";
ReadOnlyRangeStart rangeStart = new ReadOnlyRangeStart();
ReadOnlyRangeEnd rangeEnd = new ReadOnlyRangeEnd();
rangeEnd.PairWithStart(rangeStart);
p.Inlines.Add(rangeStart);
p.Inlines.Add(span);
p.Inlines.Add(rangeEnd);
section.Blocks.Add(p);
document.Sections.Add(section);
this.radRichTextEditor1.Document = document;


Workaround: add an empty span as last inline element in the paragraph:

RadDocument document = new RadDocument();
Section section = new Section();
Paragraph p = new Paragraph();
Span span = new Span();
span.Text ="test" + Environment.NewLine + "test";
ReadOnlyRangeStart rangeStart = new ReadOnlyRangeStart();
ReadOnlyRangeEnd rangeEnd = new ReadOnlyRangeEnd();
rangeEnd.PairWithStart(rangeStart);
p.Inlines.Add(rangeStart);
p.Inlines.Add(span);
p.Inlines.Add(rangeEnd);
///////////////////////////////////////
Span emptySpan = new Span();
emptySpan.Text = " ";
p.Inlines.Add(emptySpan);
///////////////////////////////////////
section.Blocks.Add(p);
document.Sections.Add(section);
this.radRichTextEditor1.Document = document;
Completed
Last Updated: 06 Jan 2016 11:00 by ADMIN
To reproduce:
- Export document with an inline UI elements to HTML.
- Import the document.

 Workaround:
- Manually export the UI elements information and then create new UI elements when the document is imported:
void ImportSettings_InlineUIContainerImporting(object sender, InlineUIContainerImportingEventArgs e)
{
    PropertyInfo property = typeof(InlineUIContainerImportingEventArgs).GetProperty("Handled");
    property.GetSetMethod(true).Invoke(e, new object[] { true });

    ObjectHandle handle = Activator.CreateInstance("Telerik.WinControls.UI", e.CommentContent);
    Object control = handle.Unwrap();
    InlineUIContainer container = new InlineUIContainer();
    RadElementUIContainer radContainer = new RadElementUIContainer(control as RadElement);
    container.UiElement = radContainer;
    container.Height = 30;
    container.Width = 300;
    e.TargetParagraph.Inlines.Add(container);
}
//export
private void btnWrite_Click(object sender, EventArgs e)
{
    HtmlFormatProvider provider = new HtmlFormatProvider();
    provider.ExportSettings.InlineUIContainerExporting += ExportSettings_InlineUIContainerExporting;         
  
    File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\TelerikUITest.html", provider.Export(this.radRichTextEditor1.Document));
}

void ExportSettings_InlineUIContainerExporting(object sender, Telerik.WinForms.Documents.FormatProviders.Html.InlineUIContainerExportingEventArgs e)
{
    string control = ((RadElementUIContainer)e.InlineUIContainer.UiElement).Element.ToString();
    e.CommentContent = control;
}

Completed
Last Updated: 20 Oct 2015 13:13 by ADMIN
To reproduce:
-  Use the cut option in the context menu then  dispose the rich text editor and collect the garbage.

Workaround:
Telerik.WinControls.RichTextEditor.UI.ContextMenu menu = textEditor.RichTextBoxElement.ContextMenu as Telerik.WinControls.RichTextEditor.UI.ContextMenu;
textEditor.RichTextBoxElement.ContextMenu = null;

RadDropDownMenu ddm = menu.GetType().GetField("radDropDownMenu", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(menu) as RadDropDownMenu;
3 4 5 6 7 8