我有一个带有ToggleButton(ExpanderButton)的TreeView。切换按钮有两张图片(一张用于展开,另一张用于展开)。但是,当我选择一个TreeViewItem时,我用另一种颜色来高亮它,我也想改变图像的颜色(我在另一种颜色中有相同的颜色)。
问题是我不知道如何将ToggleButton的触发器属性设置为TreeViewItem的IsSelected属性。
有任何想法吗?
最佳答案
如果有人需要,请在这里。
<ControlTemplate TargetType="ToggleButton">
<Image Name="ExpanderImage" Height="24" Width="24" Source="..\Images\Icons\32x32\Blue\Open.png" />
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Blue\Close.png" />
</Trigger>
<DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True">
<Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Open.png" />
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsChecked, RelativeSource={RelativeSource Self}}" Value="True" />
<Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Close.png" />
</MultiDataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
关于xaml - 如何在子级上将触发器设置为父级属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3158832/