WPF触发器和样式
我有一个UserControl,在参考资料部分我有如下代码WPF触发器和样式,wpf,triggers,Wpf,Triggers,我有一个UserControl,在参考资料部分我有如下代码 <Style TargetType="{x:Type Viewbox}"> <Style.Triggers> <Trigger Property="Viewbox.IsMouseOver" Value="True"> <Setter Property="Viewbox.Effect" >
<Style TargetType="{x:Type Viewbox}">
<Style.Triggers>
<Trigger Property="Viewbox.IsMouseOver" Value="True">
<Setter Property="Viewbox.Effect" >
<Setter.Value>
<DropShadowEffect Color="DarkGray" Direction="45" BlurRadius="30"></DropShadowEffect>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
这适用于我在控件中的ViewBox
但当我这么做的时候
<Viewbox.Triggers>
<Trigger Property="Viewbox.IsMouseOver" Value="True">
<Setter Property="Viewbox.Effect" >
<Setter.Value>
<DropShadowEffect></DropShadowEffect>
</Setter.Value>
</Setter>
</Trigger>
</Viewbox.Triggers>
在视图框中,我得到错误
有没有一种方法可以在不使用样式的情况下将本地触发器添加到ViewBox?框架元素与样式和模板的触发器集合接受不同类型的触发器。对于FrameworkElement.Triggers,您只能使用EventTrigger,它通常用于启动动画。Style、ControlTemplate和DataTemplate触发器集合可以像您使用的那样使用更常见的触发器和DataTrigger。这是一个奇怪的设置,总是感觉像一个未完成的功能。您可以将代码更改为使用故事板从EventTrigger为DropShadowEffect上的属性设置动画,或者只使用样式方法。from 触发器的集合 只建立在一个元素上 支持EventTrigger,不支持属性 触发器(触发器)。如果你需要 属性触发器,您必须放置 它们位于样式或模板中,并且 然后将该样式或模板指定给 元素可以直接通过 样式属性,或间接 通过隐式样式引用