我对WPF很陌生(坦率地说,我不知道为什么WinForms甚至存在,因为在我看来它的FAR不如WPF),所以我还没有完全摆脱东西的。如何应用触发器图像
我有一个TabControl,并且每个TabHeader里面都有一个图像。本质上,我只想让选定的TabItem具有高斯模糊半径为2的图像,并且所有未选择的TabItem具有高斯模糊为8的图像。
我一直在寻找很多XAML,WPF,触发器等方面的材料,我只是被信息所淹没。有人可以帮我吗?
我对WPF很陌生(坦率地说,我不知道为什么WinForms甚至存在,因为在我看来它的FAR不如WPF),所以我还没有完全摆脱东西的。如何应用触发器图像
我有一个TabControl,并且每个TabHeader里面都有一个图像。本质上,我只想让选定的TabItem具有高斯模糊半径为2的图像,并且所有未选择的TabItem具有高斯模糊为8的图像。
我一直在寻找很多XAML,WPF,触发器等方面的材料,我只是被信息所淹没。有人可以帮我吗?
您可以通过在图像上更改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
你是个天才。哈哈哈,WPF真棒!谢谢 :) – Minato 2014-10-17 17:59:05
你能告诉你的标签头部模板,如果你有一个? – dkozl 2014-10-17 17:37:30
@dkozl我的XAML文件中没有任何模板,但是我使用[MahApps.Metro](http://mahapps.com/)来设置样式,如果有帮助的话。 – Minato 2014-10-17 17:45:22
'“我不知道为什么WinForms甚至存在,因为在我看来,”'WPF需要'Silverlight'插件,而'WinForm'你不需要插入。'达到v。Rich – Zuzlx 2014-10-17 18:01:05