Some fonts doesn't include bold and italic font styles. Currently text formatted with such fonts and with applied bold or italic formatting is exported without the italic or bold effect. Instead, the default typeface can be exported, and additional transformation could be applied to the letters itself - e.g. skew transform for the italic.
In localizing your demo code for a RichTextBox I noticed some size mode-related inconsistencies in icon placements in the various sorts of buttons:
In Size=large, generally the icon appears above the button text. In the split button the icon is centered over and partially obscures the text. Unacceptable!
In Size=medium, generally the icon appears to the left of the text. In the Split button it appears below the text. Either is fine but should be consistent.
Also, when Size=medium and icon beside text, in all buttons I would like to see more spacing between the icon and the text; there seems to be virtually none.
A reference in DocumentFragment to RadDocument (CopySource property) can cause a memory after copy-paste between RadDocument.
Workaround:
public static bool ReleaseClipboardExReferences(
RadDocument document)
{
dynamic clipboardEx = new DynamicProxyObject(typeof(ClipboardEx));
if (clipboardEx.documentClipboardData?.CopySource is DynamicProxyObject copySource
&& object.ReferenceEquals(copySource.Instance, document))
{
clipboardEx.documentClipboardData = null;
return true;
}
if (clipboardEx.CopiedDocumentFragment?.Fragment?.CopySource is DynamicProxyObject fragmentCopySource
&& object.ReferenceEquals(fragmentCopySource.Instance, document))
{
clipboardEx.CopiedDocumentFragment = null;
return true;
}
return false;
}
private bool SetLocation(Point location)
{
if (this.HorizontalOffset != location.X || this.VerticalOffset != location.Y)
{
this.HorizontalOffset = location.X;
this.VerticalOffset = location.Y;
return true;
}
// added the following 5 lines to trigger the popup to recalculate it's location
else
{
this.VerticalOffset++;
this.VerticalOffset--;
}
return false;
}When the copied document fragment is replaced during paste within a single RadDocument:
ClipboardEx.SetDocument(new DocumentFragment(doc));Ordered list are not pasted correctly.
Workaround:
Bypass paste and use the InsertFragment API
this.radRichTextBox.InsertFragment(new DocumentFragment(doc)); e.Cancel = true;
Use the attached project to reproduce:
- Click the first button so the image is changed
- Click the second button and examine the exported HTML
Expected: the Uri is exported
Actual: the Uri is not exported.
Workaround:
p.Inlines.AddAfter(image, image2);
When the MEF catalog of RadRichTextBox is predefined, the PasteOptionsPopup is not automatically loaded and causes NullReferenceException in the presenter when the users press Ctrl or Esc.
Workaround: Add typeof(PasteOptionsPopup) to the catalog.