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

这种行为对我来说似乎非常奇怪,我想我做错了什么。我有一个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时显示它,否则将其隐藏。


为什么触发器不覆盖显式定义的属性?那不是目的吗?


慕斯709654
浏览 629回答 3
3回答

慕田峪4524236

当触发器为真时,它将值更改为所需值。当它不再为true时,它将值恢复为先前的值。它不会将其更改为不需要的值。这意味着,如果原始值可见,并且将其更改为可见,则当触发器不再活动时,该值将恢复为可见。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python