如何将RibbonGroup对齐?

时间:2012-07-27 07:04:52

标签: c# .net wpf ribboncontrolslibrary

我使用RibbonControlsLibrary。如何将一个RibbonGroup对齐?它应该只是选项卡中的一个组。所有其他组应该左对齐。

5 个答案:

答案 0 :(得分:1)

您无法将RibbonGroup对齐到右侧。功能区不提供执行此操作的功能。

你可以做的是对齐页面标题项......但我不知道它是否足够你: DevExpress

答案 1 :(得分:0)

Rover,您可以尝试在最后一个左侧RibbonGroup和右对齐RibbonGroup之间添加RibbonGroup,并将大小分配给与窗口大小相关的新添加的功能区。

示例<RibbonGroup Width="400"></RibbonGroup>

它看起来跟随图像

enter image description here

答案 2 :(得分:0)

你可以对齐黑客,但我建议反对它。

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

客户希望在页面顶部的功能区上显示他们的徽标,但您添加的内容越多&#34; false&#34;酒吧的元素,更快,更真实的&#34;缩小窗口大小时,元素会崩溃。

答案 3 :(得分:0)

试试这个:

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

使用FlowDirection =&#34; RightToLeft&#34;。

答案 4 :(得分:0)

我知道他的职位过长,但是我遇到了同样的问题,我终于找到了解决办法:

我有3个RibbonGroupBox。 Groupe1可以在左侧对齐,Groupe3可以在右侧对齐。 Groupe2只是我在Groupe1和Groupe3之间插入的空RibbonGroupBox。

代码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的尺寸可能会发生变化,因此我从3个点调用UpdateAlignRibbon():

  • 初始化窗口(包括定义GroupBoxes内容)后
  • 当MainWindow的尺寸改变时
  • 更改Groupe1或Groupe3的尺寸