Я использую <Separator />
в своей форме, но не знаю, как изменить его цвет. Ничего из Border
/Foreground
/Background
не существует. Помощь Плеши.
Как изменить цвет WPF `<Separator/">`?
Ответ 1
Использовать стили
<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>
Сепаратор - только пограничный элемент, и теперь вы можете изменить его внешний вид любым способом, который вам нравится?
Ответ 2
Вы можете установить фон:
<Separator Background="Red"/>
Ответ 3
Хм... Я думаю, что 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>
Ответ 4
В качестве альтернативы вы можете выбрать элемент Rectangle:
<Rectangle HorizontalAlignment="Stretch" Fill="Blue" Height="2"/>
Это несколько проще изменить/форма.
Ответ 5
вы можете установить цвет Separator
с помощью этого кода:
<Separator BorderBrush="Red" BorderThickness="1"/>
Обратите внимание, что свойство BorderThickness
также должно быть применено.