gpt4 book ai didi

c# - 选择选项卡后,如何更改 TabControl TabItem 标题上的图像?

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:00 25 4
gpt4 key购买 nike

我在窗口中有以下 TabControl,当这些选项卡出现时,我需要将图像分别更改为“awb-white.png”和“center-weighted-white.png”被选中。 (当它们未被选中时返回 -white)。最好的方法是什么?可以在 XAML 中完成吗?

<Window x:Class="WpfApplication6.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TabControl>
<TabItem>
<TabItem.Header>
<Image Source="images/awb-black.png" Stretch="None" />
</TabItem.Header>
<Grid />
</TabItem>
<TabItem>
<TabItem.Header>
<Image Source="images/center-weighted-black.png" Stretch="None" />
</TabItem.Header>
<Grid />
</TabItem>
</TabControl>
</Window>

我是 WPF 的新手,所以详细信息会有很大帮助。

最佳答案

使用带有默认 setter 的 Style 作为 header ,在 IsSelected 上添加一个 Trigger 并为新 header 创建另一个 setter。

<TabItem>
<TabItem.Style>
<Style TargetType="TabItem">
<Setter Property="Header">
<Setter.Value>
<Image ...>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Header">
<Setter.Value>
<Image ...>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</TabItem.Style>
</TabItem>

由于这相当冗长,您可能希望从 TabItem 继承并将其放在默认的 template 中,其中 Image.Sources 是两个自定义属性的 bound,然后您只需要在您的实例上设置它们。

另请注意,由于 precedence,默认值在 setter 中这一事实很重要,如果您直接设置它,触发器将不会覆盖该值。

关于c# - 选择选项卡后,如何更改 TabControl TabItem 标题上的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8774887/

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