这种行为对我来说似乎非常奇怪,我认为我可能做错了什么。我有一个ContentControl
,使用一个DataTemplate来呈现一个TabControl。我希望在没有标签页打开时显示一张图片,当有标签页打开时隐藏它。但问题在于:
<Image Name="image1" Stretch="Uniform" Visibility="Hidden" Source="/Affinity;component/Images/affinity_logo.png">
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count, ElementName=tabcontrolworkspaces}"
Value="0">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
这不起作用...有点问题。
我已经在可见性和边距上测试过这个触发器(只是为了确保)。这个触发器将更改属性,除非该属性在Image
标记中定义。如果它是定义过的,触发器就不会更新该属性。因此,如果我没有为图像定义可见性,并且触发器隐藏了它,它就起作用了。问题是,默认值是可见的,而当value=0时触发器需要显示它,否则需要隐藏。
为什么触发器不能覆盖明确定义的属性?这不是它的目的吗?