WPF를 사용하고 있습니다. 코드에서 Foreground 관련 코멘트를보십시오. 텍스트 상자에 포커스가 있으면 글꼴이 흰색으로 변경되어야하지만 제대로 작동하지 않습니다. 왜?전경색은 controlTemplate에서 변경되지 않습니다.
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="bg" BorderBrush="#FFDCDCC9" Background="#FFDCDCC9" BorderThickness="1">
<ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" TargetName="bg" Value="#FFEC94C0"/>
<Setter Property="Background" TargetName="bg" Value="#FFEC94C0"/>
<Setter Property="BorderThickness" TargetName="bg" Value="2"/>
<Setter Property="Cursor" Value="Hand"/>
</Trigger>
<Trigger Property="IsFocused" Value="True" >
<Setter Property="BorderBrush" TargetName="bg" Value="#FFB5266E"/>
<Setter Property="Background" TargetName="bg" Value="#FFEC94C0"/>
<!-- foreground is invalid -->
<Setter Property="Foreground" TargetName="bg" Value="white"/>
<Setter Property="BorderThickness" TargetName="bg" Value="2"/>
<Setter Property="Cursor" Value="Hand"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
IsMocusOver 트리거가 IsFocused 트리거보다 우선 적용됩니까? –
TargetName = "bg"는 Border 요소를 대상으로합니다. TargetName = "bg"지정을 제거하면 어떻게됩니까? –
@Evanlewis 예 올바른 – user1358072