为了账号安全,请及时绑定邮箱和手机立即绑定

请问如果在元素中设置,WPF触发器将不会设置属性

请问如果在元素中设置,WPF触发器将不会设置属性

慕斯709654 2020-01-05 09:00:32
这种行为对我来说似乎非常奇怪,我想我做错了什么。我有一个ContentControl使用DataTemplete呈现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时显示它,否则将其隐藏。为什么触发器不覆盖显式定义的属性?那不是目的吗?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

当触发器为真时,它将值更改为所需值。当它不再为true时,它将值恢复为先前的值。它不会将其更改为不需要的值。

这意味着,如果原始值可见,并且将其更改为可见,则当触发器不再活动时,该值将恢复为可见。



查看完整回答
反对 回复 2020-01-06
  • 3 回答
  • 0 关注
  • 624 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信