Как выровнять RibbonGroup вправо?

Я использую RibbonControlsLibrary. Как выровнять одну RibbonGroup вправо? Должна быть только одна группа в табл. Все остальные группы должны быть выровнены влево.

5 ответов

Вы не можете выровнять RibbonGroup вправо. Лента не дает возможности сделать это.

Что вы можете сделать, это выровнять элементы заголовка страницы... но я не знаю, достаточно ли это для вас: DevExpress

Я знаю, что его пост давно устарел, но у меня была та же проблема, и я наконец нашел что-то для этого:

У меня есть 3 RibbonGroupBox. Groupe1 может быть выровнен по левому краю, Groupe3 может быть выровнен по правому краю. Groupe2 - это просто пустой RibbonGroupBox, который я вставил между Groupe1 и Groupe3.

Код 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>

Затем, чтобы управлять изменением размеров Windows, я добавляю в главное окно событие SizeChanged="MainWindow_SizeChanged" (В случае, если ваши размеры RibbonGroupBox также могут измениться, просто добавьте в них то же событие).

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

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

В моем случае Groupe3 RibbonGroupBox может изменить размерность, поэтому я вызываю UpdateAlignRibbon() из 3-х точек:

  • После инициализации моего окна (включая определение содержимого GroupBoxes)
  • Когда MainWindow изменило свои размеры
  • Когда Groupe1 или Groupe3 изменили свои размеры

Попробуй это:

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

Работает с FlowDirection="RightToLeft".

Rover, Вы можете попробовать добавить RibbonGroup между последней левой RibbonGroup и Right выравнивание RibbonGroup и назначить размер для новой добавленной ленты, связанный с размером окна.

пример <RibbonGroup Width="400"></RibbonGroup>

это выглядит следующим образом

введите описание изображения здесь

Вы можете взломать выравнивание, но я бы рекомендовал против этого.

                <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>

Клиент хотел, чтобы его логотип был на ленте в верхней части страницы, но чем больше вы добавляете "ложных" элементов на панель, тем быстрее "истинные" элементы разрушаются при уменьшении размера окна.

Другие вопросы по тегам