如何将触发器应用于图像

时间:2014-10-17 17:35:46

标签: c# wpf

我对WPF很新(坦率地说,我不知道为什么WinForms甚至存在,因为在我看来它的FAR不如WPF),所以我还是没有在事物的摇摆中。

我有一个TabControl,每个TabHeader里面都有一个图像。基本上,我只是希望选定的TabItem具有高斯模糊半径为2的图像,并且所有未选择的TabItems都具有高斯模糊为8的图像。

我一直在浏览有关XAML,WPF,触发器等的大量材料,而且我对信息感到不知所措。有人可以帮助我吗?

1 个答案:

答案 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