2010-10-22 1 views

Antwort

14

Verwenden Arten

<Style x:Key="MySeparatorStyle" TargetType="{x:Type Separator}"> 
     <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}"/> 
     <Setter Property="Margin" Value="0,2,0,2"/> 
     <Setter Property="Focusable" Value="false"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Separator}"> 
        <Border 
         BorderBrush="{TemplateBinding BorderBrush}" 
         BorderThickness="{TemplateBinding BorderThickness}" 
         Background="{TemplateBinding Background}" 
         Height="1" 
         SnapsToDevicePixels="true"/> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

A seperator ist nur ein Element Grenze und jetzt können Sie das Aussehen Sie irgendeine Art und Weise ändern?

+0

Es funktioniert nicht mit Symbolleistentrennzeichen, überprüfen Sie die Antwort von @ code4life unten. – Benlitz

18

Hmm ... Ich denke, die Separator ist eines der wenigen Elemente, die nicht mit einem einfachen Stil arbeiten. Basierend auf der MSDN-Dokumentation müssen Sie SeparatorStyleKey angeben.

Zum Beispiel für ein ToolBar Sie dies tun würden:

<Style x:Key="{x:Static ToolBar.SeparatorStyleKey" 
    TargetType="{x:Type Separator}"> 
    <Setter Property="Background" 
     Value="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}"/> 
    <Setter Property="Margin" Value="0,2,0,2"/> 
    <Setter Property="Focusable" Value="false"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Separator}"> 
       <Border 
        BorderBrush="{TemplateBinding BorderBrush}" 
        BorderThickness="{TemplateBinding BorderThickness}" 
        Background="{TemplateBinding Background}" 
        Height="1" 
        SnapsToDevicePixels="true"/> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

+1 für die einzige Antwort, die mit einem Symbolleistentrennzeichen funktioniert. Keine der anderen Antworten funktioniert. – Benlitz

+0

Die Tastenbenennung ist wichtig. – code4life

+0

Übrigens, hier ist ein Artikel, der erklärt, warum, und auch zu erwähnen, wie man die andere Art von Trennzeichen style, nämlich die Trennzeichen von MenuItem: http://devlicio.us/blogs/christopher_bennage/archive/2008/06/19/styling-separators -in-wpf.aspx – Benlitz

7

Alternativ können Sie wählen, ein Rectangle-Element verwenden:

<Rectangle HorizontalAlignment="Stretch" Fill="Blue" Height="2"/>

Es ist etwas leichter/Form zu ändern.

+0

Gibt es eine Möglichkeit, das Rechteck im Kontextmenü nicht auswählbar zu machen? Das Schöne am Separator ist Sie können es nicht markieren, es ist kein echtes MenuItem-Kind – goldenratio

51

Sie können den Hintergrund gesetzt:

<Separator Background="Red"/> 
5

Sie können die Separator ‚s Farbe mit diesem Code festgelegt:

<Separator BorderBrush="Red" BorderThickness="1"/>

Hinweis, dass die BorderThickness Eigenschaft muss auch angewendet werden.

Verwandte Themen