我对WPF很新(坦率地说,我不知道为什么WinForms甚至存在,因为在我看来它的FAR不如WPF),所以我还是没有在事物的摇摆中。
我有一个TabControl,每个TabHeader里面都有一个图像。基本上,我只是希望选定的TabItem具有高斯模糊半径为2的图像,并且所有未选择的TabItems都具有高斯模糊为8的图像。
我一直在浏览有关XAML,WPF,触发器等的大量材料,而且我对信息感到不知所措。有人可以帮助我吗?
答案 0 :(得分:3)
您可以根据Effect
更改图片上的TabItem.IsSelected
来实现这一目标。假设这是Image
Header
<Image Source="...">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="8"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TabItem}}, Path=IsSelected}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect Radius="2"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
基本上你创建DataTrigger
哪个绑定从可视树上升到TabItem
并触发IsSelected=true