我最近制作了一些控制设计并希望使用它们,但我发现存在问题。通常,复选框有4个图像:
但4.国家不存在,我告诉你我到目前为止做了什么:
<ControlTemplate x:Key="ModernCheckBox" TargetType="{x:Type CheckBox}">
<StackPanel Orientation="Horizontal">
<Image x:Name="_Image" Source="CheckBox_Normal.png" Margin="0,0,4,0"/>
<ContentControl Content="CheckBox"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="CheckBox.IsMouseOver" Value="True">
<Setter TargetName="_Image" Property="Source" Value="CheckBox_NormalHover.png"/>
</Trigger>
<Trigger Property="CheckBox.IsChecked" Value="True">
<Setter TargetName="_Image" Property="Source" Value="CheckBox_Checked.png"/>
</Trigger>
<Trigger Property="CheckBox.??" Value="True">
<Setter TargetName="_Image" Property="Source" Value="CheckBox_CheckedHover.png"/>
</Trigger>
</ControlTemplate.Triggers>
我的模板到目前为止运作良好,但是你可以看到我找不到最后一个状态,所以我在这里寻求帮助!
亲切的问候,杰克
答案 0 :(得分:7)
您需要使用MultiTrigger才能对您的州#4
做出反应e.g。
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="IsChecked" Value="True"/>
</MultiTrigger.Conditions>
<Setter TargetName="_Image" Property="Source" Value="CheckBox_CheckedHover.png"/>
</MultiTrigger>
答案 1 :(得分:1)
您可以使用MultiTrigger测试多个属性值:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Property="CheckBox.IsMouseOver" Value="True" />
<Condition Property="CheckBox.IsChecked" Value="True" />
</MultiDataTrigger.Conditions>
<Setter TargetName="_Image" Property="Source" Value="CheckBox_CheckedHover.png"/>
</MultiDataTrigger>
答案 2 :(得分:0)
或者您只需更改StaticResource
的{{1}}和OptionMark.MouseOver.Glyph
的{{1}}