我正在使用带有ImageBrush的OpacityMask,并且想要在图像无法加载的情况下隐藏元素。我尝试使用EventTrigger,但这是
<Rectangle x:Name="imageRoot"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Fill="{StaticResource PhoneForegroundBrush}"
>
<Rectangle.OpacityMask>
<ImageBrush ImageSource="{Binding ImagePath}" Stretch="Uniform">
<i:Interaction.Triggers>
<i:EventTrigger EventName="ImageFailed">
<ei:ChangePropertyAction PropertyName="Visibility"
TargetName="imageRoot">
<ei:ChangePropertyAction.Value>
<Visibility>Collapsed</Visibility>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</ImageBrush>
</Rectangle.OpacityMask>
</Rectangle>
这似乎只是默默地失败:没有编译时错误,运行时也没有绑定错误,但元素不会崩溃。
答案 0 :(得分:1)
由于某种原因,“TargetName = imageRoot”无法将操作绑定到元素。但是,使用TargetObject="{Binding ElementName=imageRoot}"
确实有效。