The busy animation keeps running on the background when the busy indicator control gets unloaded (removed from the visual tree).
To work this around, set the IsBusy property of RadBusyIndicator to False in its Unloaded event handler.
Since the last update, we receive often the following exception from our users log. I don't know exactly how to reproduce, but I know that when it happens, the user tries to click anywhere in the document and each time the exception is thrown. The users need to close and reopen the document to make it work again.
System.NullReferenceException: Object reference not set to an instance of an object. at Telerik.Windows.Documents.UI.DocumentPresenterBase.CaretPosition_PositionChanged(Object sender, EventArgs e) at Telerik.Windows.Documents.DocumentPosition.MoveToPosition(DocumentPosition newPosition) at Telerik.Windows.Documents.Selection.MouseSelectionHandler.UpdateSelectionAndCaretPosition() at Telerik.Windows.Documents.Selection.MouseSelectionHandler.RegisterDocumentMouseMove(Point position, SourceType source) at Telerik.Windows.Documents.UI.DocumentPresenterBase.HandleMouseMoveOnPosition(Point position, SourceType source) at Telerik.Windows.Documents.UI.DocumentPresenterBase.Owner_MouseMove(Object sender, MouseEventArgs e) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Input.MouseDevice.Synchronize() at System.Windows.Input.MouseDevice.PostProcessInput(Object sender, ProcessInputEventArgs e) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
We also had this case when we try programatically to move the caret (seems to be the same end result exception):
System.NullReferenceException: Object reference not set to an instance of an object.
at Telerik.Windows.Documents.UI.DocumentPresenterBase.CaretPosition_PositionChanged(Object sender, EventArgs e)
at Telerik.Windows.Documents.DocumentPosition.MoveToDocumentStart()
at Telerik.Windows.Documents.DocumentPosition.MoveToFirstPositionInDocument()
The bug happens when we have two or more rows merged in the first column and programmatically, we make the rowDetails for the first row visible, the merged cells of the first column stay merged and are over of the rowDetails, hiding a part of the Row Details:
Steps to reproduce:
1. Open Word 2016 or later. Create a new blank document. Type any text. **File → Save As** → `original.docx`.Implement the export of notes (footnote, endnote) in the PdfFormatProvider of the RadRichTextBox.
When a DropDownList SDT form is saved in a XAML document and then imported with the XamlFormatProvider, an extra ListItem entry is added in the items collection of the DropDownList. The extra entry is the default "Choose an item".
To work this around, iterate all ComboBoxProperties and manually remove duplicates of the "Choose an item" entry.
var dropDownLists = radRichTextBox.Document.EnumerateChildrenOfType<SdtRangeStart>()
.Where(x => x.SdtProperties is ComboBoxProperties)
.Select(x => x.SdtProperties).OfType<ComboBoxProperties>();
var defaultItemString = LocalizationManager.GetString("Documents_ContentControlsGenerator_ListItem");
foreach (var item in dropDownLists)
{
if (item.Items.Count > 0 && item.Items.Any(x => x.Value != defaultItemString) && item.Items.Any(x => x.Value == defaultItemString))
{
var occurrence = item.Items.FirstOrDefault(x => x.Value == defaultItemString);
while (occurrence != null)
{
item.Items.Remove(occurrence);
occurrence = item.Items.FirstOrDefault(x => x.Value == defaultItemString);
}
}
}
We want to have the option to replace texts only in a selected part of the document.
Use Notepad++ as a reference to check this feature.
RadSpreadsheetFormulaBar has a drop down list that shows the named ranges in the document. If a named range contains an underscore character (ex: Income_Amount), the associated item in the drop down won't display the underscore (ex: IncomeAmount).
To workaround this, you can use a global Loaded event handler of RadMenuItem and override the Header content with a TextBlock.
static MainWindow()
{
EventManager.RegisterClassHandler(typeof(RadMenuItem), RadMenuItem.LoadedEvent, new RoutedEventHandler(OnMenuItemLoaded));
}
private static void OnMenuItemLoaded(object sender, RoutedEventArgs e)
{
var menuItem = (RadMenuItem)sender;
if (menuItem.DataContext is DefinedName context)
{
menuItem.Header = new TextBlock() { Text = context.Name };
}
}