0
我想为DataTemplate
中的控件设置Triggers。每当我在DataTemplate
中设置控件的属性时,它似乎不起作用。但是,如果不在DataTemplate
中设置TextBlock
内的属性,那么我可以在样式中看到Trigger
的效果(它有效)。我不知道使用样式触发器与DataTemplate
是否好! XAML在下面;用于DataTemplates的WPF样式触发器
<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。但是,对于第二个问题,我认为你是对的。所以为了使用样式触发器,我应该避免使用局部值,并通过样式设置器为前者设置它们,对吧? – Deniz 2014-10-30 17:17:41
对不起,我只是假设它是错的。如果这是期望的行为,那么你的触发器就好,只是不要设置本地值 – dkozl 2014-10-30 17:19:09