In Development
Last Updated: 25 Jun 2025 07:01 by ADMIN

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: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)

When the TitleBarVisibility is Collapsed, the backstage close button is aligned with the top of the backstage adorner. The button should have a top margin applied. 
This reproduces when the BackstagePosition property of RadRibbonBackstage is set to Office2013, which is the default setting of newer Telerik themes.

To work this around, get the backstage close button and set its top margin.

 private void RadRibbonBackstage_Loaded(object sender, RoutedEventArgs e)
 {
     var backstage = (RadRibbonBackstage)sender;
     var closeButton = backstage.FindChildByType<RadRibbonButton>();
     closeButton.Margin = new Thickness(closeButton.Margin.Left, 15, closeButton.Margin.Right, closeButton.Margin.Bottom);
 }

In Development
Last Updated: 04 Apr 2025 11:58 by ADMIN
When the RadRibbonSplitButton's Size property is set to Large the content and image are misaligned.
Completed
Last Updated: 20 Dec 2024 08:46 by ADMIN
Release 2024.4.1219 (Preview)
Currently, for some of the newer themes, such as Windows 11, the expand/collapse icon and tooltip are incorrect.
Completed
Last Updated: 11 Feb 2025 07:40 by ADMIN
Release 2025.1.211 (2025 Q1)
The foreground of the RadRibbonBackstageItem when IsGroupSeparator="True" is not updated when changing the theme's variation.
Unplanned
Last Updated: 22 May 2024 15:52 by Stenly
Add support to show the system menu on the RadRibbonWindow element when IsWindowsThemeEnabled=False and the Shift + right mouse button is clicked on the icon on the taskbar.
Completed
Last Updated: 14 May 2024 15:37 by ADMIN
Release 2024.2.514 (2024 Q2)

The width of the popup element that shows the selected tab content when RadRibbonView is minimized is wrong in the following situation. A tab in the minimized ribbon is clicked to display its content, then the tab is clicked again. After that, the width of the ribbon is changed. At this point when you open the minimized content, the popup uses the previous size of the RadRibbonView control. 

To work this around, you can manually update the MaxWidth of the popup content element on size changed.

public class CustomRibbonView : RadRibbonView
{
    private ContentPresenter popupContent;

    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        this.popupContent = this.GetTemplateChild("SelectedTabContentPopup") as ContentPresenter;
    }

    protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
    {
        base.OnRenderSizeChanged(sizeInfo);
        if (popupContent != null)
        {
            double popupContentPadding = 16;
            popupContent.MaxWidth = this.ActualWidth - popupContentPadding;
        }
    }
}

Completed
Last Updated: 11 Mar 2024 07:36 by ADMIN
Release 2024.1.312
Unpinned RibbonView content popup is not rendered correctly (has invalid width) when the application main window is of type RadRibbonWindow and in Maximized Mode.
Completed
Last Updated: 11 Feb 2025 07:40 by ADMIN
Release 2025.1.211 (2025 Q1)
The dropdown remains opened when switching the window with Alt+Tab.
Unplanned
Last Updated: 30 Jan 2024 08:28 by Marek
Created by: Stenly
Comments: 1
Category: RibbonView
Type: Feature Request
1
Currently, the RadRibbonView control does not provide the functionality to merge different instances into one. We could add such an option to the RadRibbonView control.
Unplanned
Last Updated: 25 Jan 2024 10:27 by Stenly

Currently, the RadRibbonGallery control provides the PopupViewportHeight property that sets the Height property of the ScrollViewer, which hosts the RadGalleryItem instances when it is expanded.

We could introduce a property, for example, PopupViewportMaxHeight that will set the MaxHeight property of the ScrollViewer. This way, if the height gets higher than the value specified for this property, a vertical scrollbar should appear.

Unplanned
Last Updated: 01 Dec 2023 10:34 by Martin Ivanov

Currently, the RadRibbonTab GetChildrenCore method doesn't create automation peers for the element in the ContentPresenter for the TabStripAdditionalContent.

At this point, you can enable this by creating a custom AutomationPeer that derives from RadGridViewAutomationPeer and override its GetChildrenCore() method. This way you can manually create the peer for the AdditionalTabStripContent. This idea is shown in the attached project.

Completed
Last Updated: 26 Oct 2023 11:52 by ADMIN
Release LIB 2023.3.1106 (6 Nov 2023)
The checked RadRibbonSplitButton doesn't look good and it is not consistent with the RadRibbonToggleButton when hosted in QuickAccessToolBar. This is reproducible when the IsToggle of the button is set to True and the button is checked (IsChecked=True). Also, it reproduces in the Windows11 and Office2019 themes.

To work this around, you will need to re-template the button when hosted in QuickAccessToolBar.
Completed
Last Updated: 26 Oct 2023 10:07 by ADMIN
Release LIB 2023.3.1106 (6 Nov 2023)

The RibbonSplitButton can behave like a toggle button by setting its IsToggle property to True. When the button is hosted in ApplicationMenu its default template is changed with a special one that adjust the UI of the button to the ApplicationMenu design. However, the alternative template is missing the code that updates the UI of the button when the IsChecked property is True.

To work this around, you can edit the ControlTemplate of RadRibbonSplitButton. The template for the button when hosted in ApplicationMenu is using the following x:Key "ApplicationRibbonSplitButtonTemplate". You can apply the edited template through the Template property of RadRibbonSplitButton.

Completed
Last Updated: 27 Oct 2023 06:27 by ADMIN
Release LIB 2023.3.1106 (6 Nov 2023)

By default the drop down buttons (like RadRibbonDropDownButton and RadRibbonSplitButton are opening their drop down content on mouse enter, when hosted in ApplicationMenu. When a drop down of a button is opened and you hover another button, the currently opened drop down should get closed. But this doesn't happen when the ApplicationMenu is populated through its ItemsSource and the buttons are defined in the ItemTemplate.

To work this around avoid using ItemsSource and ItemTemplate. Instead add the buttons directly in the Items collection of ApplicationMenu.

Unplanned
Last Updated: 15 Sep 2023 08:41 by Martin Ivanov
Created by: Martin Ivanov
Comments: 0
Category: RibbonView
Type: Feature Request
0
Add an option to assign a Style for the ScreenTip control. The option should be available per RadRibbonView and also per each separate element. It could follow the current ScreenTip settings concept where attached properties are used.

For example:

<telerik:RadRibbonView telerik:ScreenTip.Style="{StaticResource MyGlobalScreenTipStyle}" />

or:

<telerik:RadRibbonButton telerik:ScreenTip.Style="{StaticResource MyButtonScreenTipStyle}" />
Unplanned
Last Updated: 14 Sep 2023 14:58 by Martin Ivanov

The ScreenTip no longer is displayed on mouse over of the owner element. This reproduces only if the element is hovered before the ScreenTips of the previously hovered element is closed. In other words this happens if the two elements that contain ScreenTips are overlapping are very close to one another and there is no space that allows closing the tooltip while moving the mouse.

To work this around, subscribe to the Opened event of the ScreenTip control and set its Visibility to Visible if the element was previously Collapsed.

<Window.Resources>
	<Style TargetType="telerik:ScreenTip">
		<EventSetter Event="Opened" Handler="ScreenTip_Opened" />
	</Style>
</Window.Resources>

 

private void ScreenTip_Opened(object sender, RoutedEventArgs e)
{
	var screenTip = (ScreenTip)sender;
	if (screenTip.Visibility == Visibility.Collapsed)
	{
		screenTip.Visibility = Visibility.Visible;
	}
}

Completed
Last Updated: 02 Oct 2023 08:21 by ADMIN
Release R3 2023

The RadRibbonWindow titlebar is higher than expected when the Windows 11 theme is used. 

A side effect of this is that the content overlaps the titlebar, when the content is not a RadRibbonView. 

This reproduces when the Windows11 and Crystal themes are used. To reproduce it, the IsWindowsThemeEnabled property should be set to false in order for the Telerik theme to get applied to the window.

To work this around, you can use the visual tree helper methods in the Loaded event of RadRibbonWindow in order to get the corresponding visuals and change their size and offset.

private void RadRibbonWindow_Loaded(object sender, RoutedEventArgs e)
{
	var windowDecoratorPanel = this.ChildrenOfType<Grid>().FirstOrDefault(x => x.Name == "MaximizeWindowDecorator");
	var titleBarPanel = windowDecoratorPanel.FindChildByType<Grid>();
	titleBarPanel.RowDefinitions[0].Height = new GridLength(30);

	var clientArea = windowDecoratorPanel.ChildrenOfType<Border>().FirstOrDefault(x => x.Name == "PART_ClientAreaBorder");
	clientArea.Margin = new Thickness(0);
}

Completed
Last Updated: 28 Aug 2023 07:25 by ADMIN
Release LIB 2023.2.904 (4 Sep 2023)

Setting the LayoutMode to Simplified doesn't do anything in the RadRibbonTabs that are assigned to a RadRibbonContextualGroup.

To work this around, extract the "ContextualTabsTemplate" ControlTemplate and the following elements in the "RibbonScrollViewer".

 

<telerikRibbonViewPrimitives:RibbonScrollViewer x:Name="TabItemsScrollViewer">
	<Grid>
		<ItemsPresenter x:Name="PART_DefaultItemsPresenter" HorizontalAlignment="Left" />
		<ItemsControl x:Name="PART_SimplifiedItemsControl" Visibility="Collapsed" 
				  ItemsSource="{Binding SimplifiedItems, RelativeSource={RelativeSource TemplatedParent}}">
			<ItemsControl.ItemsPanel>
				<ItemsPanelTemplate>
					<telerikRibbonViewPrimitives:RibbonGroupsPanel />
				</ItemsPanelTemplate>
			</ItemsControl.ItemsPanel>
		</ItemsControl>
	</Grid>
</telerikRibbonViewPrimitives:RibbonScrollViewer>

 

Then define the following DataTrigger in the ControlTemplate.Triggers collection:

 

<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=telerikRibbonView:RadRibbonView}, Path=LayoutMode}" Value="Simplified">
	<Setter TargetName="PART_SimplifiedItemsControl" Property="Visibility" Value="Visible"/>
	<Setter TargetName="PART_DefaultItemsPresenter" Property="Visibility" Value="Collapsed"/>
</DataTrigger>

 

Then, assign the custom ControlTemplate via the Template property of RadRibbonTab.

 

<telerik:RadRibbonTab Template="{StaticResource CustomContextualRibbonTabTemplate}" />

 

Unplanned
Last Updated: 15 Aug 2023 11:34 by Helen
RadRibbonDropDownButton with Table Picker freezes UI after picking a table.
1 2 3 4 5 6