Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

Using the RadRibbonWindow with the Office2019 theme, the maximize icon is updated when the button is interacted with (it does not change between the maximized and normal states). 

To work around this behavior, extract the default ControlTemplate of the RadRibbonWindow element and add an additional Setter with TargetName="maximizeButton" for its Content property, to the Trigger for the WindowState property when its value is set to Maximized. For the Value property of the added Setter, create a new RadGlyph element and set its Glyph property to GlyphWindowCollapse.

The following code snippet showcases this suggestion's implementation:

<Style TargetType="telerik:RadRibbonWindow" BasedOn="{StaticResource RadRibbonWindowStyle}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="telerik:RadRibbonWindow">
                <Border x:Name="outerBorder" Background="{TemplateBinding WindowBackground}" CornerRadius="{TemplateBinding CornerRadius}">
                    <Grid x:Name="MaximizeWindowDecorator">
                        <Grid telerik:CornerRadiusHelper.ClipRadius="{Binding ElementName=outerBorder, Path=CornerRadius}" telerik:CornerRadiusHelper.ClipRadiusOffset="{TemplateBinding telerik:CornerRadiusHelper.ClipRadiusOffset}" Margin="{TemplateBinding BorderThickness}">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="28"/>
                                <RowDefinition Height="*"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Border Grid.Row="0" Grid.Column="1" Background="{telerik:Office2019Resource ResourceKey=HeaderBackgroundBrush}"/>
                            <Grid Grid.ColumnSpan="3">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <StackPanel x:Name="IconPanel" Orientation="Horizontal" HorizontalAlignment="Left" Visibility="{TemplateBinding IconVisibility}" VerticalAlignment="Center" Margin="4 0 0 0">
                                    <Image
                                    Name="PART_Icon"
                                    shell:WindowChrome.IsHitTestVisibleInChrome="True"
                                    Source="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Icon, Converter={StaticResource IconConverter}}"
                                    Width="{Binding Path=SmallIconSize.Width, Source={x:Static shell:SystemParameters2.Current}}"
                                    Height="{Binding Path=SmallIconSize.Height, Source={x:Static shell:SystemParameters2.Current}}"/>
                                    <Rectangle Width="1" Margin="4 0" Fill="{telerik:Office2019Resource ResourceKey=MainBorderBrush}"/>
                                </StackPanel>
                                <telerikRibbonViewPrimitives:WindowTitle x:Name="WindowTitle"
                                Grid.Column="1"
                                Title="{TemplateBinding Title}"
                                Style="{TemplateBinding TitleBarStyle}"
                                VerticalAlignment="Center"
                                HorizontalAlignment="Center"
                                Margin="0 0 65 0"/>
                            </Grid>
                            <StackPanel x:Name="buttonPanel" Orientation="Horizontal" Grid.ColumnSpan="3" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 2 0">
                                <telerik:RadButton x:Name="minimizeButton"
                                                   shell:WindowChrome.IsHitTestVisibleInChrome="True"
                                                   ToolTipService.ToolTip="Minimize"
                                                   Command="{x:Static shell:SystemCommands.MinimizeWindowCommand}"
                                                   Style="{StaticResource RibbonWindowButtonStyle}"
                                                   CornerRadius="{Binding Path=CornerRadius.TopRight, RelativeSource={RelativeSource TemplatedParent}}">
                                    <telerik:RadButton.ToolTip>
                                        <TextBlock Text="{telerik:LocalizableResource Key=RibbonWindowMinimize}"/>
                                    </telerik:RadButton.ToolTip>
                                    <telerik:RadGlyph Glyph="{StaticResource GlyphMinimize}"/>
                                </telerik:RadButton>
                                <telerik:RadToggleButton x:Name="maximizeButton"
                                                         shell:WindowChrome.IsHitTestVisibleInChrome="True"
                                                         IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=WindowState, Converter={StaticResource BooleanToWindowStateConverter}, Mode=TwoWay}"
                                                         Style="{StaticResource RadRibbonWindowToggleButtonStyle}"
                                                         CornerRadius="{Binding Path=CornerRadius.TopRight, RelativeSource={RelativeSource TemplatedParent}}">
                                    <telerik:RadGlyph Glyph="{StaticResource GlyphWindow}"/>
                                </telerik:RadToggleButton>
                                <telerik:RadButton x:Name="closeButton"
                                                   shell:WindowChrome.IsHitTestVisibleInChrome="True"
                                                   Command="{x:Static shell:SystemCommands.CloseWindowCommand}"
                                                   Style="{StaticResource RibbonWindowButtonStyle}"
                                                   CornerRadius="{Binding Path=CornerRadius.TopRight, RelativeSource={RelativeSource TemplatedParent}}">
                                    <telerik:RadButton.ToolTip>
                                        <TextBlock Text="{telerik:LocalizableResource Key=RibbonWindowClose}"/>
                                    </telerik:RadButton.ToolTip>
                                    <telerik:RadGlyph Glyph="{StaticResource GlyphClose}"/>
                                </telerik:RadButton>
                            </StackPanel>
                            <Border x:Name="PART_ClientAreaBorder" Grid.Column="1" Grid.Row="1" Margin="0 12 0 0" Background="{TemplateBinding Background}"/>
                            <AdornerDecorator x:Name="Adorner" Grid.Column="1" Grid.RowSpan="2">
                                <ContentPresenter Canvas.ZIndex="0" Name="PART_RootContentPresenter"/>
                            </AdornerDecorator>
                            <ResizeGrip x:Name="WindowResizeGrip"
                            Grid.Row="1"
                            Grid.Column="1"
                            shell:WindowChrome.ResizeGripDirection="BottomRight"
                            HorizontalAlignment="Right"
                            VerticalAlignment="Bottom"
                            Visibility="Collapsed"
                            IsTabStop="False"/>
                        </Grid>
                        <Border Background="{x:Null}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding CornerRadius}"/>
                    </Grid>
                </Border>
                <ControlTemplate.Triggers>
                    <MultiTrigger>
                        <MultiTrigger.Conditions>
                            <Condition Property="Window.ResizeMode" Value="CanResizeWithGrip"/>
                            <Condition Property="Window.WindowState" Value="Normal"/>
                        </MultiTrigger.Conditions>
                        <Setter TargetName="WindowResizeGrip" Property="Visibility" Value="Visible"/>
                    </MultiTrigger>
                    <Trigger Property="Window.ResizeMode" Value="NoResize">
                        <Setter TargetName="minimizeButton" Property="Visibility" Value="Collapsed"/>
                        <Setter TargetName="maximizeButton" Property="Visibility" Value="Collapsed"/>
                    </Trigger>
                    <Trigger Property="Window.ResizeMode" Value="CanMinimize">
                        <Setter TargetName="maximizeButton" Property="IsEnabled" Value="False"/>
                    </Trigger>
                    <Trigger Property="WindowState" Value="Maximized">
                        <Setter TargetName="MaximizeWindowDecorator" Property="Margin" Value="6"/>
                        <Setter TargetName="maximizeButton" Property="Content">
                            <Setter.Value>
                                <telerik:RadGlyph Glyph="{StaticResource GlyphWindowCollapse}"/>
                            </Setter.Value>
                        </Setter>
                        <Setter Property="CornerRadius" Value="0"/>
                    </Trigger>
                    <MultiTrigger>
                        <MultiTrigger.Conditions>
                            <Condition Property="telerik:RadRibbonWindow.IsAutoHideTaskbar" Value="true"/>
                            <Condition Property="Window.WindowState" Value="Maximized"/>
                        </MultiTrigger.Conditions>
                        <Setter TargetName="MaximizeWindowDecorator" Property="Margin" Value="-7 -2 -7 -6"/>
                    </MultiTrigger>
                    <Trigger Property="IsTitleVisible" Value="False">
                        <Setter TargetName="WindowTitle" Property="Visibility" Value="Collapsed"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

An ArgumentOutOfRangeException is thrown when the Separator property is set to a string that contains alpha-numeric/numeric "not required" mask tokens, and the clear button is pressed. The control works with a custom RadMaskedTextInput control to parse different date and time patterns for the start and end dates, which replaces the mask tokens with a placeholder, resulting in the exception when updating the Value property of the RadMaskedTextInput when the value is cleared.

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

ArgumentOutOfRangeException occurs when the ItemsSource of RadComboBox gets reset. To recreate this the IsSelected property of RadComboBoxItem should be bound too and multiple selection should be allowed.

To work this around, you can disable the autiomation peers globally:

AutomationManager.AutomationMode = AutomationMode.Disabled;

Or you disable them only for the RadComboBox:

public class CustomComboBox : RadComboBox
{
    protected override AutomationPeer OnCreateAutomationPeer()
    {
        return null;
    }
}

The stacktrace:

System.ArgumentOutOfRangeException: 'Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')'
  System.Private.CoreLib.dll!System.ThrowHelper.ThrowArgumentOutOfRange_IndexMustBeLessException() Unknown
  System.Private.CoreLib.dll!System.Collections.Generic.List<System.__Canon>.this[int].get(int index) Unknown  Telerik.Windows.Controls.Input.dll!Telerik.Windows.Automation.Peers.RadComboBoxAutomationPeer.RaiseSelectionEvents(System.Windows.Controls.SelectionChangedEventArgs e) Line 202 C#  Telerik.Windows.Controls.Input.dll!Telerik.Windows.Controls.RadComboBox.OnSelectionChanged(System.Windows.Controls.SelectionChangedEventArgs e) Line 1927 C#
  PresentationFramework.dll!System.Windows.Controls.Primitives.Selector.SetSelectedHelper(object item, System.Windows.FrameworkElement UI, bool selected) Unknown
  PresentationFramework.dll!System.Windows.Controls.Primitives.Selector.NotifyIsSelectedChanged(System.Windows.FrameworkElement container, bool selected, System.Windows.RoutedEventArgs e) Unknown
  PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source, System.Windows.RoutedEventArgs args, bool reRaised) Unknown
  PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender, System.Windows.RoutedEventArgs args) Unknown
  Telerik.Windows.Controls.Input.dll!Telerik.Windows.Controls.RadComboBoxItem.OnSelected(System.Windows.RoutedEventArgs e) Line 59 C#
  PresentationFramework.dll!System.Windows.Controls.ListBoxItem.OnIsSelectedChanged(System.Windows.DependencyObject d, System.Windows.DependencyPropertyChangedEventArgs e) Unknown
  PresentationFramework.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e) Unknown
  WindowsBase.dll!System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex entryIndex, System.Windows.DependencyProperty dp, System.Windows.PropertyMetadata metadata, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, bool coerceWithDeferredReference, bool coerceWithCurrentValue, System.Windows.OperationType operationType) Unknown
  PresentationFramework.dll!System.Windows.StyleHelper.ApplyStyleOrTemplateValue(MS.Internal.FrameworkObject fo, System.Windows.DependencyProperty dp) Unknown
  PresentationFramework.dll!System.Windows.StyleHelper.InvalidateContainerDependents(System.Windows.DependencyObject container, ref MS.Utility.FrugalStructList<System.Windows.ContainerDependent> exclusionContainerDependents, ref MS.Utility.FrugalStructList<System.Windows.ContainerDependent> oldContainerDependents, ref MS.Utility.FrugalStructList<System.Windows.ContainerDependent> newContainerDependents) Unknown
  PresentationFramework.dll!System.Windows.StyleHelper.DoStyleInvalidations(System.Windows.FrameworkElement fe, System.Windows.FrameworkContentElement fce, System.Windows.Style oldStyle, System.Windows.Style newStyle) Unknown
  PresentationFramework.dll!System.Windows.StyleHelper.UpdateStyleCache(System.Windows.FrameworkElement fe, System.Windows.FrameworkContentElement fce, System.Windows.Style oldStyle, System.Windows.Style newStyle, ref System.Windows.Style styleCache) Unknown
  PresentationFramework.dll!System.Windows.FrameworkElement.OnStyleChanged(System.Windows.DependencyObject d, System.Windows.DependencyPropertyChangedEventArgs e) Unknown
  PresentationFramework.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e) Unknown
  WindowsBase.dll!System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex entryIndex, System.Windows.DependencyProperty dp, System.Windows.PropertyMetadata metadata, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, bool coerceWithDeferredReference, bool coerceWithCurrentValue, System.Windows.OperationType operationType) Unknown
  WindowsBase.dll!System.Windows.DependencyObject.InvalidateProperty(System.Windows.DependencyProperty dp, bool preserveCurrentValue) Unknown
  PresentationFramework.dll!System.Windows.FrameworkElement.UpdateStyleProperty() Unknown
  PresentationFramework.dll!System.Windows.FrameworkElement.OnInitialized(System.EventArgs e) Unknown
  Telerik.Windows.Controls.Input.dll!Telerik.Windows.Controls.RadComboBoxItem.OnInitialized(System.EventArgs e) Line 106 C#
  PresentationFramework.dll!System.Windows.FrameworkElement.OnVisualParentChanged(System.Windows.DependencyObject oldParent) Unknown
  PresentationFramework.dll!System.Windows.Controls.ListBoxItem.OnVisualParentChanged(System.Windows.DependencyObject oldParent) Unknown
  PresentationCore.dll!System.Windows.Media.Visual.FireOnVisualParentChanged(System.Windows.DependencyObject oldParent) Unknown
  PresentationCore.dll!System.Windows.Media.Visual.AddVisualChild(System.Windows.Media.Visual child) Unknown
  PresentationCore.dll!System.Windows.Media.VisualCollection.Add(System.Windows.Media.Visual visual) Unknown
  PresentationFramework.dll!System.Windows.Controls.UIElementCollection.AddInternal(System.Windows.UIElement element) Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.GenerateChildren() Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.OnItemsChangedInternal(object sender, System.Windows.Controls.Primitives.ItemsChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.OnItemsChanged(object sender, System.Windows.Controls.Primitives.ItemsChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemContainerGenerator.OnRefresh() Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemContainerGenerator.OnCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.DeliverEvent(object sender, System.EventArgs e, System.Type managerType) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.DeliverEvent(object sender, System.EventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.DeliverEvent(object sender, System.EventArgs e, System.Type managerType) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.DeliverEvent(object sender, System.EventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.ListCollectionView.RefreshOverride() Unknown
  PresentationFramework.dll!System.Windows.Data.CollectionView.RefreshInternal() Unknown
  PresentationFramework.dll!System.Windows.Data.CollectionView.DeferHelper.Dispose() Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemCollection.SetCollectionView(System.Windows.Data.CollectionView view) Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemsControl.OnItemsSourceChanged(System.Windows.DependencyObject d, System.Windows.DependencyPropertyChangedEventArgs e) Unknown
  PresentationFramework.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e) Unknown
  WindowsBase.dll!System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex entryIndex, System.Windows.DependencyProperty dp, System.Windows.PropertyMetadata metadata, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, bool coerceWithDeferredReference, bool coerceWithCurrentValue, System.Windows.OperationType operationType) Unknown
  WindowsBase.dll!System.Windows.DependencyObject.InvalidateProperty(System.Windows.DependencyProperty dp, bool preserveCurrentValue) Unknown
  PresentationFramework.dll!System.Windows.Data.BindingExpression.TransferValue(object newValue, bool isASubPropertyChange) Unknown
  PresentationFramework.dll!MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(int k, System.ComponentModel.ICollectionView collectionView, object newValue, bool isASubPropertyChange) Unknown
  PresentationFramework.dll!MS.Internal.Data.ClrBindingWorker.OnSourcePropertyChanged(object o, string propName) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.ComponentModel.PropertyChangedEventArgs>.DeliverEvent(object sender, System.EventArgs e, System.Type managerType) Unknown
  WindowsBase.dll!System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs args) Unknown
  Telerik.Windows.Controls.dll!Telerik.Windows.Controls.ViewModelBase.OnPropertyChanged(string propertyName) Unknown
> WpfApp180.dll!WpfApp180.MainViewModel.ResetData() Line 44 C#

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

The following exception is raised when adding a ColumnGroupDescriptor to the GroupDescriptors property of a RadGridView. This bug is data specific and I've only been able to duplicate it with a large data set but the issue seems like it could be addressed without the actual data, given that the code causing the issue is apparently passing a pixelWidth < 0.

System.ArgumentOutOfRangeException: 'The parameter value must be greater than zero.
Parameter name: pixelWidth'

  PresentationCore.dll!System.Windows.Media.Imaging.RenderTargetBitmap.RenderTargetBitmap(int pixelWidth, int pixelHeight, double dpiX, double dpiY, System.Windows.Media.PixelFormat pixelFormat) Unknown
  Telerik.Windows.Controls.dll!Telerik.Windows.Controls.FrameworkElementToImageConverter.ToImage(System.Windows.FrameworkElement element) Unknown
  Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Controls.GridView.GridViewGroupPanel.ConvertFrameworkElementToImage(System.Windows.FrameworkElement frameworkElement) Unknown
  Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Controls.GridView.GridViewGroupPanel.GetEffectiveContentForDescriptor(Telerik.Windows.Data.IGroupDescriptor descriptor) Unknown
  Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Controls.GridView.GridViewGroupPanel.PrepareContainerForItemOverride(System.Windows.DependencyObject element, object item) Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost.PrepareItemContainer(System.Windows.DependencyObject container, object item) Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.AddChildren(System.Windows.Controls.Primitives.GeneratorPosition pos, int itemCount) Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.OnItemsChangedInternal(object sender, System.Windows.Controls.Primitives.ItemsChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.OnItemsChanged(object sender, System.Windows.Controls.Primitives.ItemsChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemContainerGenerator.OnItemAdded(object item, int index, System.Collections.Specialized.NotifyCollectionChangedEventArgs collectionChangedArgs) Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemContainerGenerator.OnCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.DeliverEvent(object sender, System.EventArgs e, System.Type managerType) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.DeliverEvent(object sender, System.EventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.DeliverEvent(object sender, System.EventArgs e, System.Type managerType) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.DeliverEvent(object sender, System.EventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.ListCollectionView.ProcessCollectionChangedWithAdjustedIndex(System.Collections.Specialized.NotifyCollectionChangedEventArgs args, int adjustedOldIndex, int adjustedNewIndex) Unknown
  System.dll!System.Collections.ObjectModel.ObservableCollection<System.__Canon>.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) Unknown
  Telerik.Windows.Data.dll!Telerik.Windows.Data.ObservableItemCollection<Telerik.Windows.Data.IGroupDescriptor>.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) Unknown
  System.dll!System.Collections.ObjectModel.ObservableCollection<System.__Canon>.InsertItem(int index, System.__Canon item) Unknown
> Sage.Platform.Core.Wpf.dll!Sage.EstDataSource.Wpf.RadGridViewSerializer.DeserializeGroupDescriptors(Telerik.Windows.Controls.GridView.GridViewDataControl grid, Sage.Wpf.Utilities.GridViewSerializationInfo serializationInfo) Line 524 C#
  Sage.Platform.Core.Wpf.dll!Sage.EstDataSource.Wpf.RadGridViewSerializer.DeserializeGridInfo(Telerik.Windows.Controls.GridView.GridViewDataControl grid, System.Func<string, bool> isRenamableColumn, System.Xml.XmlReader reader, bool skipDeserializeGroups) Line 235 C#
  Sage.Platform.Core.Wpf.dll!Sage.EstDataSource.Wpf.RadGridViewSerializer.DeserializeGridSettings(Telerik.Windows.Controls.GridView.GridViewDataControl grid, System.Func<string, bool> isRenamableColumn, System.IO.Stream stream, bool skipDeserializeGroups) Line 199 C#
  Sage.Platform.Core.Wpf.dll!Sage.EstDataSource.Wpf.RadGridViewSerializer.DeserializeGridSettings(Telerik.Windows.Controls.GridView.GridViewDataControl grid, System.Func<string, bool> isRenamableColumn, System.IO.Stream stream) Line 168 C#
  Sage.Estimating.DataSource.Wpf.dll!Sage.EstDataSource.Wpf.ViewModel.EstimateDB.EstimateGridViewModel.DeserializeLayoutGridInfo(Telerik.Windows.Controls.RadGridView dataGrid, System.IO.MemoryStream stream) Line 122 C#
  Sage.Estimating.DataSource.Wpf.dll!Sage.EstDataSource.Wpf.ViewModel.EstimateDB.EstimateGridViewModel.DeserializeCurrentLayoutGridInfo(Telerik.Windows.Controls.RadGridView dataGrid, System.IO.MemoryStream defaultLayoutStream) Line 257 C#
  Sage.Estimating.DataSource.Wpf.dll!Sage.EstDataSource.Wpf.View.EstimateDB.EstimateGrid.ApplyCurrentLayoutToGrid() Line 210 C#
  Sage.Estimating.DataSource.Wpf.dll!Sage.EstDataSource.Wpf.View.EstimateDB.EstimateGrid.EstimateInfoGrid_Loaded(object sender, System.Windows.RoutedEventArgs e) Line 167 C#
  PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source, System.Windows.RoutedEventArgs args, bool reRaised) Unknown
  PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender, System.Windows.RoutedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.BroadcastEventHelper.BroadcastEvent(System.Windows.DependencyObject root, System.Windows.RoutedEvent routedEvent) Unknown
  PresentationFramework.dll!System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(object root) Unknown
  PresentationCore.dll!MS.Internal.LoadedOrUnloadedOperation.DoWork() Unknown
  PresentationCore.dll!System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() Unknown
  PresentationCore.dll!System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() Unknown
  PresentationCore.dll!System.Windows.Media.MediaContext.RenderMessageHandlerCore(object resizedCompositionTarget) Unknown
  PresentationCore.dll!System.Windows.Media.MediaContext.RenderMessageHandler(object resizedCompositionTarget) Unknown
  WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) Unknown
  WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.TryCatchWhen(object source, System.Delegate callback, object args, int numArgs, System.Delegate catchHandler) Unknown
  WindowsBase.dll!System.Windows.Threading.DispatcherOperation.InvokeImpl() Unknown
  WindowsBase.dll!MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(object obj) Unknown
  mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown
  mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown
  mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
  WindowsBase.dll!MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
  WindowsBase.dll!System.Windows.Threading.DispatcherOperation.Invoke() Unknown
  WindowsBase.dll!System.Windows.Threading.Dispatcher.ProcessQueue() Unknown
  WindowsBase.dll!System.Windows.Threading.Dispatcher.WndProcHook(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) Unknown
  WindowsBase.dll!MS.Win32.HwndWrapper.WndProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) Unknown
  WindowsBase.dll!MS.Win32.HwndSubclass.DispatcherCallbackOperation(object o) Unknown
  WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) Unknown
  WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.TryCatchWhen(object source, System.Delegate callback, object args, int numArgs, System.Delegate catchHandler) Unknown
  WindowsBase.dll!System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority priority, System.TimeSpan timeout, System.Delegate method, object args, int numArgs) Unknown
  WindowsBase.dll!MS.Win32.HwndSubclass.SubclassWndProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam) Unknown
  [Native to Managed Transition]
  [Managed to Native Transition]
  WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame frame) Unknown
  PresentationFramework.dll!System.Windows.Application.RunDispatcher(object ignore) Unknown
  PresentationFramework.dll!System.Windows.Application.RunInternal(System.Windows.Window window) Unknown
  Sage.EstManagementConsole.exe!Sage.EstManagementConsole.EstimatingManagementConsoleApp.Main() Unknown

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

Missing types regarding GridViewColumns cause exceptions when saving: 

 

Workaround

Add the types manually:

radGridView.ItemsSource = sampleData;
manager.AllowGridViewControls();

manager.AllowedTypes.Add(typeof(GridViewToggleRowDetailsColumn));
manager.AllowedTypes.Add(typeof(GridViewDataColumn));
manager.AllowedTypes.Add(typeof(DependencyObject));
manager.AllowedTypes.Add(typeof(Size));
manager.AllowedTypes.Add(typeof(SizeConverter));

var gridViewColumnType = typeof(Telerik.Windows.Controls.GridViewColumn);
var assembly = gridViewColumnType.Assembly;

// Get the internal type by its full name
var internalType = assembly.GetType("Telerik.Windows.Controls.GridViewColumnCollectionInternal", throwOnError: false);

// Use the type as needed (for example, add to AllowedTypes if required)
if (internalType != null)
{
    manager.AllowedTypes.Add(internalType);
}

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

The dialog and the watermark stating that no license is found are displayed, even when the license key is installed properly. This happens in addin projects, like Excel VSTO Add-in.

To workaround this use the  TelerikLicensing.Register method to install your license script key.

public MyWpfUserControl()
{
    TelerikLicensing.Register("your-script-key");
    InitializeComponent();
}

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

The vertical scrolling seems to become very slow and even unresponsive, when the following conditions are met:

  • left and right frozen columns count is 0
  • the summary width of all columns is smaller than the width of the RadGridView element

To minimize the issue, you can set the GroupRenderMode property of RadGridView to Nested.

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

Exception when resizing column with width set to star and min-width set to 0.

Set the properties to the above and resize a column to 0 and then to the original width -> an exception occurs.

 

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707
GetPerMonitorDPIAwareScaleFactor throws an exception when the parameter visual is null and crashes the application.
Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

The RadGridView control hangs when the frozen columns are enabled and the application is resized. The exact resizing depends on the screen resolution and the exact new size. This was originally recreated on a monitor with 1600x900 resolution 125% DPI and the application was maximized (resized from restored to full screen size). The issue occurs in the Fluent theme. Also, the FluentPalette.Palette.ScrollBarsMode static property should be set to Normal.

To work this around, you can overrider the MeasureOverride method of RadGridView and add the following code:

public class CustomGridView: RadGridView
{
    private static readonly PropertyInfo internalColumnsProp = typeof(GridViewDataControl).GetProperty("InternalColumns", BindingFlags.Instance | BindingFlags.NonPublic);
    private static MethodInfo invalidateColumnsMethod;

    protected override Size MeasureOverride(Size availableSize)
    {
        if (EnableRowVirtualization && !double.IsInfinity(availableSize.Height))
        {
            var internalColumns = internalColumnsProp.GetValue(this);
            if (invalidateColumnsMethod == null)
            {
                invalidateColumnsMethod = internalColumns.GetType().GetMethod("InvalidateColumnWidthsCalculation", BindingFlags.Instance | BindingFlags.NonPublic);                     
            }

            invalidateColumnsMethod.Invoke(internalColumns, null);
        }
        return base.MeasureOverride(availableSize);
    }

 

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

When the RadScheduleView has a recurring appointment with no end date for its recurrence in certain scenarios multiple errors can be try/catch-ed internally, which leads to a degraded performance. One such scenario is when a recurring appointment with no end date starts before the currently displayed time period, but does not have any occurrences before the displayed time period.

As a workaround, an end date can be added to the recurrence rule of recurring appointments.

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707
In a scenario where the RadGridView control utilizes the right frozen columns functionality with the RowIndicatorVisibility="Collapsed", CanUserFreezeColumns="False", and RightFrozenColumnsSplitterVisibility="Visible, cells can become missing while scrolling.
Completed
Last Updated: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)
When using the Xaml version of our assemblies and the Material theme is set through the StyleManager, the glyph on the close button of each SearchAutoCompleteBoxItem element is not visible.
Completed
Last Updated: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)

The operating system region and language needs to be set to Japanese.

RichTextBox seems to have several issues with Japanese, but being locked from visibility or edit is the biggest one.

To recreate, start typing in Japanese, push the "right" arrow after selecting the IME option desired, then hit "spacebar." This seems to duplicate the text, then when trying to continue to type into the text field the text is no longer visible (yet the IME does display).

The native WPF RichTextBox has no issues (and also supports partial selection, etc.).

I've attached a video to show the behavior with 2025 Q1 telerik.

*note:* This is on a machine with NVIDIA graphics. I mention this as there may be some issues with RichTextBox and the hardware... When I'm in a virtual machine with a completely Japanese environment and virtual graphics driver, there is NO text visible at all when trying to type into the RichTextBox. Works fine with other controls and wpf RichTextBox.

Completed
Last Updated: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)
Currently, the RadFileDialogs do not support setting filters without specifying the extensions for the files. This is deemed an incorrect filter pattern and an exception is raised.

We can provide support for filtering files that do not have an extension.
Completed
Last Updated: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)

MF_E_SHUTDOWN error occurs in some cases when the camera MediaFoundation resources get released. This may happen on unloaded or initialized of the RadWebCam control.

Here is one of the exception stacktraces that may be observed:

Description: The process was terminated due to an unhandled exception.
Exception Info: System.Exception: Stop failed: MF_E_SHUTDOWN
   at Telerik.Windows.MediaFoundation.MediaFoundationHelper.ThrowOnHResultError(HResult hr, HResult expected, String message)
   at Telerik.Windows.MediaFoundation.BaseMediaFoundationPresenter.StopSession()
   at Telerik.Windows.Controls.RadWebCam.<Stop>b__38_0()

Completed
Last Updated: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)

Currently, the DataFormatString property of the columns is applied only to the top-level rows and not to the child ones.

To work this around, create a new DataTemplate for the CellTemplate property of the column and set the StringFormat property of the Binding instance for the element that will be used to display the cell's value in view mode.

<telerik:GridViewDataColumn.CellTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding MyPropertyValue, StringFormat=N2}"/>
    </DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>

 

Completed
Last Updated: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)

NullReferenceException occurs when the the automation peers creation for the rows goes over 10,000 peers (the MaxCachedPeersSize setting of the GridViewDataControlAutomationPeer). The exception occurs only when the 'record' modifier is used in the class definition. For example:

public record class MyClass(int Id)
{
}

The exception stacktrace is:

System.NullReferenceException: 'Object reference not set to an instance of an object.'
peer was null.
Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Automation.Peers.GridViewDataControlAutomationPeer.ClearPeer(Telerik.Windows.Automation.Peers.DataItemAutomationPeer peer)   Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Automation.Peers.GridViewDataControlAutomationPeer.GetOrCreateItemPeer(object item, int index) Line 288 C#  Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Automation.Peers.GridViewRowAutomationPeer.FindDataItemAutomationPeer(System.Collections.Generic.List<System.Windows.Automation.Peers.AutomationPeer> childPeers) Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Automation.Peers.GridViewRowAutomationPeer.GetChildrenCore() 

.

To work this around use the "class" modifier instead of "record". For example, instead of:

public record class MyClass(int Id)
{
}

Use:

public class MyClass
{
    public int Id { get; set; } 
}

 Or alternatively, increase the MaxCachedPeersSize value.

 

Completed
Last Updated: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)
When the DropDownPlacement property of the RadDropDownButton element is set to Top and the Windows 11 theme is used, a Setter in the default ControlTemplate tries to set the VerticalOffset of the drop-down Popup element. This is done via a converter (of the type of MultiplyValueConverter), to which a "-1" is passed as a ConverterParameter. In the Convert method of the converter, the native System.Convert.ToDouble method tries to convert the ConverterParameter to the type of double. Internally, the Convert.ToDouble method uses the current culture when converting a string to a double.

This is observed when using a different culture, for example, "ar-EG".
1 2 3 4 5 6