Для моего PasswordBox, я написал стиль, в нем я сделал ScrollView как говорит сделать docs.microsoft. И после этого, у меня все время прозрачный Border каким-то боком + не срабатывают его триггеры(на изменение цвета). Если же я в Border явно задаю Background, то он приоьретает цвет, но триггеры не работают так как Background задан жестко.
Стиль PasswordBox
<Style x:Key="AutorizationPasswordBox" TargetType="{x:Type PasswordBox}">
<Setter Property="Height" Value="30"></Setter>
<Setter Property="OverridesDefaultStyle"
Value="true" />
<Setter Property="AllowDrop"
Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type PasswordBox}">
<Grid>
<Border CornerRadius="3">
<ScrollViewer x:Name="PART_ContentHost" Background="{x:Null}"
BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
<Border.Style>
<Style TargetType="{x:Type Border}" BasedOn="{StaticResource DefaultColorChanger}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=PART_ContentHost, Path=IsFocused}" Value="True">
<Setter Property="Background" Value="#D8FFFFFF"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
BasedOn: DefaultColorChanger
<Style TargetType="{x:Type Border}" x:Key="DefaultColorChanger">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#D8FFFFFF"></Setter>
<Setter Property="BorderBrush" Value="Aqua"></Setter>
</Trigger>
</Style.Triggers>
<Setter Property="Background" Value="#B2FFFFFF"></Setter>
</Style>
Background="{x:Null}"->Background="Transparent", а вообще, вынесите цвет в сеттер, которые в начале стиля, а в Template делайте привязку к нему ({TemplateBinding Background}). – EvgeniyZ Jan 18 '22 at 14:58x:Key, в теории тоже будет работать. А так, мне кажется, вы лишним делаете уBorder'a стиль, зачем он там? Можно ведь сделать всю эту задачу одним простым стилем, а не 3-мя) – EvgeniyZ Jan 18 '22 at 17:28