gpt4 book ai didi

如果在 Element 中设置,WPF 触发器将不会设置属性

转载 作者:行者123 更新时间:2023-12-04 02:41:14 24 4
gpt4 key购买 nike

这种行为对我来说似乎非常奇怪,我认为我做错了什么来得到它。我有一个 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>

这不起作用......有点。

我已经在 Visiblity 和 Margin 上测试过这个(为了确定)。此触发器将更改该属性,除非该属性在 Image 中定义。标签。如果是,触发器将不会更新该属性。所以,如果我没有定义图像的可见性,并且触发器隐藏它,它就可以工作。问题是,默认是可见的,触发器需要在 value=0 时显示它,否则隐藏它。

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

最佳答案

这是正常的Dependency Property Value Precedence .将其设置在 Image 上是 #3,而在 Style 触发器中的优先级较低,为 #6。

你可以这样做:

<Image Name="image1" Stretch="Uniform" Source="/Affinity;component/Images/affinity_logo.png">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Visibility" Value="Hidden" />
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count, ElementName=tabcontrolworkspaces}"
Value="0">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>

关于如果在 Element 中设置,WPF 触发器将不会设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7126308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com