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