解决方法:在网格应用程序中找不到样式中的可附加属性触发器
本文关键字:触发器 属性 样式 找不到 方法 网格 应用程序 解决 | 更新日期: 2023-09-27 18:30:18
我在Windows8中使用Visual Studio 11。在网格应用程序 (Metro) 中设置数据触发器会在 XAML 中显示此错误:
在样式中找不到可附加属性触发器
<Image Stretch="UniformToFill">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="{Binding Image}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Image}" Value="{x:Null}">
<Setter Property="Source" Value="Images/Default.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
为什么要给我看这个?
触发器在
Windows 8 Metro 风格的应用中不受支持。我建议您编写一个转换器,它将用默认值替换空值。
您可以使用VisualState而不是object。Windows 8 中的触发器 这是代码
<ControlTemplate TargetType="Button">
<VisualStateGroup.Transitions>
<!--Take one half second to transition to the PointerOver state.-->
<VisualTransition To="PointerOver"
GeneratedDuration="0:0:0.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal" />
<VisualState x:Name="PointerOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="ButtonBrush"
Storyboard.TargetProperty="Color" To="Red" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.Background>
<SolidColorBrush x:Name="ButtonBrush" Color="Green"/>
</Grid.Background>
</Grid>
</ControlTemplate>