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
Боковой вопрос, если содержимое моей кнопки является StackPanel с TextBlock внутри него, я бы просто использовал StackPanel.TextBlock.Foreground вместо TextBlock.Foreground? – Parker
К сожалению, 'TextBlock.Foreground' не будет работать в более сложных сценариях (только по умолчанию). 'StackPanel.TextBlock.Foreground' тоже не будет работать. Когда у вас более сложный контент, я думаю, что стиль должен быть сделан в самом контексте, а не в шаблоне. – ShadeOfGrey