2010-06-07 15 views
10

Come posso aggiungere il separatore verticale alla barra multifunzione WPF, a RibbonGroup? Ho provato qualcosa del genere, ma ho ottenuto il separatore orizzontale in verticale.Separatore verticale nel nastro WPF

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

Quindi, come posso creare un separatore verticale?

+0

Cosa controllo del nastro stai usando? E quale versione di .NET/WPF? –

+0

Uso la barra multifunzione da RibbonControlsLibrary (Microsoft.Windows.Controls.Ribbon) e 3.5 .NET Framework – Marta

risposta

10

Ecco come lo farei.

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

Questa soluzione funziona nella nuova versione Ribbon. La soluzione con RibbonLabel non funziona ora perché non c'è RibbonLabel nella nuova barra multifunzione wpf. – Marta

2

È possibile utilizzare una RibbonLabel, che può ospitare qualsiasi controllo in un RibbonGroup. È molto utile!

Per un separatore di linea verticale, si può provare questo:

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

(Naturalmente, è possibile lo stile come si vede in forma per l'applicazione ..)

+0

Grazie mille! Ha funzionato esattamente come volevo :) – Marta

5

sembra che questo doesn' t funzionano più nell'ultima versione (3.5.40729.1). Anche il RibbonSeparator non funziona, ma puoi usare:

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

Puoi avvolgere quello che hai in un RibbonGroup, un separatore verticale è stato creato per la destra del gruppo.

Vertical Ribbon Separator using RibbonGroup as wrapper

Tutto quello che ho fatto è stato avvolto il primo pulsante in un 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> 
0

Questo ha funzionato per me:

<Border Width="1" Margin="3" Height="175" Visibility="Visible" Background="#FFB9C9DA" /> 
+0

o se si desidera evitare il binding del colore hardcoded per Background = "{Binding Path = BorderBrush, RelativeSource = {RelativeSource FindAncestor, AncestorType = {x: Digitare my: Ribbon}}}" – akovar