C# 复选框已选中&;伊斯穆塞弗
我最近做了一些控制设计,并想使用它们,但我发现有一个问题。通常,复选框有4个图像:C# 复选框已选中&;伊斯穆塞弗,c#,wpf,checkbox,C#,Wpf,Checkbox,我最近做了一些控制设计,并想使用它们,但我发现有一个问题。通常,复选框有4个图像: 正常状态下 当鼠标滑过 检查完毕后 当它被选中,鼠标移到上面 但是第四个。国家不存在,我向你展示我到目前为止是如何做到的: <ControlTemplate x:Key="ModernCheckBox" TargetType="{x:Type CheckBox}"> <StackPanel Orientation="Horizontal">
<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>
到目前为止,我的模板工作得很好,但正如你所看到的,我找不到上一个状态的方法,所以我在这里寻求帮助
亲切问候,
杰克你需要使用a来对你的状态做出反应#4
e、 g
您可以使用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>
或者您可以更改
OptionMark.MouseOver.Glyph的静态资源
,以及OptionMark.Pressed.Glyph的静态资源
<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>