Styling RadRibbonWindow min/max/close buttons

3 posts, 0 answers
  1. Jason
    Jason avatar
    47 posts
    Member since:
    Jan 2013

    Posted 04 Oct 2013 Link to this post

    I have an application that has a RadRibbonWindow form, with a grid and then a RadRibbonView.
          <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions> <telerik:RadRibbonView>

    This is then styled, using the Windows 8 style.

    All is working as you'd expect. My issue is with the min/max/close icons on the form. They look too block and thick, particularly when maximized. The restore icon in especially blob like. Is there a way to change the styling of these buttons to use finer lines, or an outline similar to the office style?

  2. Pavel R. Pavlov
    Pavel R. Pavlov avatar
    1182 posts

    Posted 09 Oct 2013 Link to this post

    Hi Jason,

    In order to customize those buttons you need to extract and edit the default template of the RadRibbonWindow control.

    However, with our latest official release you are not allowed to easily extract it. This is why I extracted it for you in a separate ResourceDictionary. In that dictionary you will be able to find a Style targeting the RadToggleButton, called "RadRibbonWindowToggleButtonStyle".  You need to change the Data property of the only Path component nested in the Grid called "Collapse".

    In order to apply this Style to your RadRibbonWindow you need to subscribe to its Loaded event. In the event handler you need to get and apply the style. You can do this with the following code:

    public partial class MainWindow : RadRibbonWindow
        static MainWindow()
            RadRibbonWindow.IsWindowsThemeEnabled = false;
        public MainWindow()
            this.Loaded += MainWindow_Loaded;
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
            var pair = new KeyValuePair<object, object>(new Style(), "RadRibbonWindowStyle");
            var ribbonDictionary = Application.Current.Resources.MergedDictionaries.FirstOrDefault(x => x.Contains(pair.Value));
            var style = ribbonDictionary["RadRibbonWindowStyle"] as Style;
            this.Style = style;
    Please try to import this dictionary in your project and let me now if you need any further assistance.

    Pavel R. Pavlov
    Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
    Sign up for Free application insights >>
  3. UI for WPF is Visual Studio 2017 Ready
  4. Jason
    Jason avatar
    47 posts
    Member since:
    Jan 2013

    Posted 09 Oct 2013 Link to this post


    Thanks for the prompt assistance.
Back to Top