Вертикальный разделитель на ленте WPF

Как добавить вертикальный разделитель на ленту WPF в RibbonGroup? Я пробовал что-то подобное, но я получил горизонтальный разделитель вместо вертикального.

<r:RibbonGroup>
<r:RibbonButton Command="{StaticResource SomeButton}" />     
 <r:RibbonSeparator></r:RibbonSeparator> 
 <r:RibbonToggleButton IsChecked="False" Command="{StaticResource AnotherButton}"/></r:RibbonToggleButton>
 </r:RibbonGroup>

Итак, как я могу сделать вертикальный разделитель?


person Marta    schedule 07.06.2010    source источник
comment
Какое управление лентой вы используете? И какая версия .NET/WPF?   -  person Henk Holterman    schedule 07.06.2010
comment
Я использую Ribbon из библиотеки RibbonControlsLibrary (Microsoft.Windows.Controls.Ribbon) и 3.5 .NET Framework.   -  person Marta    schedule 07.06.2010


Ответы (6)


Вот как бы я это сделал.

<ribbon:RibbonGroup.Resources>
    <!-- Vertical Separator-->
    <Style TargetType="{x:Type ribbon:RibbonSeparator}"
           x:Key="KeyRibbonSeparatorVertical">
        <Setter Property="LayoutTransform">
            <Setter.Value>
                <RotateTransform Angle="90"/>
            </Setter.Value>
        </Setter>
    </Style>
</ribbon:RibbonGroup.Resources>
person Michael T    schedule 30.03.2011
comment
Это решение работает в новой версии ленты. Решение с RibbonLabel сейчас не работает, потому что в новой ленте wpf нет RibbonLabel. - person Marta; 06.09.2011

Похоже, это больше не работает в последней версии (3.5.40729.1). RibbonSeparator также не работает, но вы можете использовать:

<Ribbon:RibbonControlGroup Height="55" Margin="5" Width="1" MinHeight="55" MaxWidth="1"/>
person Christo    schedule 22.09.2010

Вы можете использовать RibbonLabel, который может размещать любой элемент управления в RibbonGroup. Это очень удобно!

Для вертикального разделителя строк вы можете попробовать следующее:

<ribbon:RibbonLabel>
    <Rectangle Height="56" Margin="2,0" Stroke="Silver"/>
</ribbon:RibbonLabel>

(Конечно, вы можете стилизовать его так, как считаете нужным для приложения..)

person Kieren Johnstone    schedule 25.06.2010

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

Вертикальный разделитель ленты с использованием RibbonGroup в качестве оболочки

Все, что я сделал, это завернул первую кнопку в RibbonGroup.

<ribbon:RibbonTab x:Name="HomeTab" 
                  Header="Home">
    <ribbon:RibbonGroup x:Name="Group1" 
                        Header="Group1">
        <ribbon:RibbonGroup>
            <ribbon:RibbonButton x:Name="Button1"
                             LargeImageSource="Images\LargeIcon.png"
                             Label="Button1" Margin="-5" />
        </ribbon:RibbonGroup>

        <ribbon:RibbonButton x:Name="Button2"
                             SmallImageSource="Images\SmallIcon.png"
                             Label="Button2" />
        <ribbon:RibbonButton x:Name="Button3"
                             SmallImageSource="Images\SmallIcon.png"
                             Label="Button3" />
        <ribbon:RibbonButton x:Name="Button4"
                             SmallImageSource="Images\SmallIcon.png"
                             Label="Button4" />
    </ribbon:RibbonGroup>

</ribbon:RibbonTab>
person E-rich    schedule 18.06.2014

Работает со мной-

                <my:RibbonSeparator Margin="5,0" Width="70" BorderBrush="Navy" BorderThickness="2">
                    <my:RibbonSeparator.RenderTransform>
                        <RotateTransform Angle="90" />
                    </my:RibbonSeparator.RenderTransform>
                </my:RibbonSeparator>
person Ravi    schedule 16.04.2020

Это сработало для меня:

<Border Width="1" Margin="3" Height="175" Visibility="Visible" Background="#FFB9C9DA" />
person akovar    schedule 17.02.2015
comment
или если вы хотите избежать жесткой привязки цвета, используйте привязку для Background={Binding Path=BorderBrush, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type my:Ribbon}}} - person akovar; 20.02.2015