1
Button
의 배경과 그 색상이 TextBlock
인 템플릿을 변경하려고합니다. 내 템플릿에서 다음 XAML을 시도했지만 마우스 오버시 버튼이 사라집니다. 트리거에서 버튼 내용의 속성을 변경하는 방법이 있습니까?트리거시 XAML의 버튼 내용을 변경하십시오.
<ControlTemplate TargetType="{x:Type Button}">
<Border
x:Name="Border"
CornerRadius="0"
BorderThickness="0"
Background="{x:Null}"
BorderBrush="#FF404040" />
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate DataType="TextBlock">
<TextBlock Foreground="Blue" />
</DataTemplate>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
감사합니다! 정확히 무엇이 필요합니까 =) – Parker
사이드 질문, 내 Button의 내용이 TextBlock이 포함 된 StackPanel이라면 TextBlock.Foreground 대신 StackPanel.TextBlock.Foreground를 사용합니까? – Parker
불행히도'TextBlock.Foreground'는 더 복잡한 시나리오에서는 작동하지 않습니다 (단지 기본값). 'StackPanel.TextBlock.Foreground'도 작동하지 않습니다. 좀 더 복잡한 내용을 가지고있을 때는 스타일을 템플릿이 아닌 컨텍스트 자체에서 수행해야한다고 생각합니다. – ShadeOfGrey