Я хотел бы установить триггеры для элементов управления в DataTemplate
. Всякий раз, когда я устанавливаю свойство элемента управления в пределах DataTemplate
, он кажется не работает. Однако, если не задано свойство в пределах TextBlock
внутри DataTemplate
, тогда я могу увидеть эффект Trigger
в стиле (он работает). Я не уверен, что использование стильных триггеров с DataTemplate
- это хорошо или нет! XAML находится ниже;Триггеры стиля WPF для DataTemplates
<Grid>
<Grid.Resources>
<Style TargetType="TextBlock" x:Key="BlockOf">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="FontWeight" Value="ExtraBold" />
<Setter Property="FontSize" Value="22" />
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
...........
DataTemplate для кнопки,
<Button.ContentTemplate>
<DataTemplate DataType="Button">
<TextBlock Style="{DynamicResource BlockOf}" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}"
FontStyle="Italic" FontSize="9"/>
</DataTemplate>
</Button.ContentTemplate>
«Во-первых является то, что текущий триггер будет работать только для TextBlock внутри кнопки, а не по всей Баттона», это то, что я хочу. Я просто хочу использовать IsMouseOver для TextBlock внутри кнопки. Однако для второй проблемы я считаю, что вы правы. Поэтому, чтобы работать со стильными триггерами, я должен избегать локальных значений и устанавливать их через Style Setters, например, правильно? – Deniz
Извините, я просто предположил, что это неправильно. Если это желаемое поведение, то ваш триггер в порядке, просто не устанавливайте локальные значения – dkozl