Rover
Rover

Reputation: 2230

How to align RibbonGroup to the right?

I use RibbonControlsLibrary. How to align one RibbonGroup to the right? It should be only one group in tab. All other groups should be aligned to the left.

Upvotes: 2

Views: 3597

Answers (5)

Siegfried.V
Siegfried.V

Reputation: 1595

I had the same issue, and I finally found something to do this :

I have 3 RibbonGroupBox. Groupe1 may be aligned on left, Groupe3 may be aligned on right. Groupe2 is just an empty RibbonGroupBox I inserted between Groupe1 and Groupe3.

Code XAML :

<Fluent:Ribbon DockPanel.Dock="Top" Title="{x:Static p:Resources.MiseEnBarre}"  x:Name="mainRibbon">
            <Fluent:RibbonTabItem x:Name="MainMenu" Header="{x:Static p:Resources.MainMenu}" SizeChanged="MainMenu_SizeChanged">
                <Fluent:RibbonGroupBox x:Name="Groupe1">
                    <Fluent:Button x:Name="autoNest"  SizeDefinition="Large" LargeIcon="img\image_bar_Nesting.png" Header="{x:Static p:Resources.MenuAutoNest}" Click="AutoNest_Click" />
                    <Fluent:Button x:Name="saveFile"  SizeDefinition="Large" LargeIcon="img\image_save.png" Header="{x:Static p:Resources.MenuSauvegarder}" Click="Sauvegarder_Click" />
                </Fluent:RibbonGroupBox>
                <Fluent:RibbonGroupBox x:Name="Groupe2">
                    
                </Fluent:RibbonGroupBox>
                <Fluent:RibbonGroupBox x:Name="Groupe3">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>

                        <TextBlock Grid.Column="0" Text="{Binding Path=AvailableCNClist}" HorizontalAlignment="Left"/>
                        <TextBlock Grid.Column="1" Text="{Binding Path=AvailableCNClist2}" HorizontalAlignment="Right"/>
                    </Grid>
                </Fluent:RibbonGroupBox>

            </Fluent:RibbonTabItem>
        </Fluent:Ribbon>

Then to manage the Windows redimensioning, I add on my main window the event SizeChanged="MainWindow_SizeChanged" (In the case your RibbonGroupBox dimensions could also change, just add the same event on them).

private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            UpdateAlignRibbon();
        }

        private void UpdateAlignRibbon()
        {
            Groupe2.Width = MyWindow.ActualWidth - Groupe1.ActualWidth - Groupe3.ActualWidth;
        }

In my case the Groupe3 RibbonGroupBox may change of dimension, so I call UpdateAlignRibbon() from 3 points :

  • After Initialization of my window(including defining the GroupBoxes content)
  • When the MainWindow has its dimensions changed
  • When Groupe1 or Groupe3 have its dimensions changed

Upvotes: 1

adolus
adolus

Reputation: 1

Try this:

<RibbonTab Header="Home" x:Name="rtabHome" FlowDirection="RightToLeft" >
    <RibbonGroup Header="Group">
            <TextBlock Text="Example"/>
     </RibbonGroup>
</RibbonTab>

Works with FlowDirection="RightToLeft".

Upvotes: 0

HireThisMarine
HireThisMarine

Reputation: 241

You can sort of hack in alignment but I'd recommend against it.

                <r:RibbonGroup Header="This is a Filler Header With No Functionality but to Take Up Space" Visibility="Hidden">
                  <s:RibbonButton2/>
                  <s:RibbonButton2/>
                  <s:RibbonButton2/>
                  <s:RibbonButton2/>
                </r:RibbonGroup>

The customer wanted their logo on the ribbon across the top of the page, but the more you add "false" elements to the bar, the quicker "true" elements will collapse when shrinking the window size.

Upvotes: 0

Satish
Satish

Reputation: 401

Rover, You can try add RibbonGroup between last left RibbonGroup and Right align RibbonGroup and assign size to newly added ribbon related to window size.

example <RibbonGroup Width="400"></RibbonGroup>

it's looks following image

enter image description here

Upvotes: 0

mlemay
mlemay

Reputation: 1637

You cannot align the RibbonGroup to the right. The Ribbon doesn't provide the ability to do this.

What you can do is to align page header items... but I don't know if it's enough for you: DevExpress

Upvotes: 2

Related Questions