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.
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.
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.
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);
}
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;
}
}
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}" />
Allow showing the Quick Access Toolbar (QAT) items in the customization drop down menu (the quick access menu). This is the menu that shows the "Minimize the Ribbon" and the "Show below the Ribbon" options.
The new feature should allow to display all items from the QAT in the drop down. Clicking an item from the drop down should show or hide it in the QAT.
The attached project shows one way to get this behavior with custom code.
Currently, when the users hover around the window's border, the resizing border is 1 pixel wide. Create the border wider (higher at top and bottom borders). Workaround: Apply right margin to the content inside the window.
Reproduces when you add the ContextualGroups in code-behind. While resizing the RibbonWindow the Ribbon Title overlaps the ContextualGroup Header. https://admin.telerik.com/ClientsFiles/c8763f1e-5c7f-4614-a7eb-349326cd32b2_telerikBug.PNG
When there are enough items in a RibbonBackstageItem for the ScrollBar to appear, it is clipped by the RadRibbonWindow's header. Workaround: 1. Extract the templates for RadRibbonBackstage and ScrollViewer 2. Refer the new template for the ScrollViewer in the template for the RadRibbonBackstage. 3. Change the margin for the PART_VerticalScrollBar from 0, -1, -1, -1 to 0, 27, -1, -1. 4. Set the new ControlTemplate to the RadRibbonBackstage in the application.
The attached project demonstrates a possible approach for handling this - by editing RadRibbonWindow's control template and specifying a converter for the PART_Icon Image's Width and Height bindings. The converter in turn takes into account the DPI of the current monitor.
Currently, the RadRibbonTab GetChildrenCore method creates automation peers only for the elements in its Items collection. There is no peer created for the element in the Header. Add support for this.
This missing peer, leads to that the TextBlock in the Header of the ribbon tabs is not highlighted when using a UI inspecting tool (like Snoop and its Automation option or UISpy.exe).
NullReferenceException is thrown on start up of the application, when the IsMinimized property of RadRibbonView is set to True initially. For example, if you set it in XAML.
To work this around, set the IsMinimized property in the Loaded event handler of RadRibbonView.
private void RadRibbonView_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
var ribbonView = (RadRibbonView)sender;
ribbonView.IsMinimized = true;
}
In XP and Windows10, the window goes behind the windows task bar when it is maximized. The problem manifests itself if we set explicitly the "WindowStyle" property of the RadRibbonWindow. With its "default" value, the problem do not exists. It is also reproduced when AllowTransparency = True (it requires WindowStyle = None), which is needed to set a drop shadow effect.
would be very helpful especially for users who are new to Telerik and/or WPF