Как изменить цвет в WPF`? - PullRequest
       16

Как изменить цвет в WPF`?

23 голосов
/ 22 октября 2010

Я использую <Separator /> в своей форме, но не знаю, как изменить ее цвет. Ни один из Border / Foreground / Background не существует. Пожалуйста, помогите.

Ответы [ 5 ]

61 голосов
/ 24 октября 2012

Вы можете установить фон:

<Separator Background="Red"/>
22 голосов
/ 24 августа 2012

Хмм ... Я думаю, Separator - это один из немногих элементов, которые не будут работать в простом стиле. На основе документации MSDN необходимо указать SeparatorStyleKey.

Например, для ToolBar вы должны сделать это:

<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>
14 голосов
/ 22 октября 2010

Использовать стили

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

Разделитель - это просто элемент границы, и теперь вы можете изменять его внешний вид так, как вам нравится?

8 голосов
/ 18 марта 2015

Вы можете установить цвет Separator, используя этот код:

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

Обратите внимание, что свойство BorderThickness также должно применяться.

8 голосов
/ 30 августа 2012

В качестве альтернативы вы можете использовать элемент Rectangle:

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

Несколько проще изменить / придать форму.

...