首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CheckBox IsChecked & IsMouseOver

CheckBox IsChecked & IsMouseOver
EN

Stack Overflow用户
提问于 2012-02-16 23:30:59
回答 3查看 3.3K关注 0票数 3

我最近做了一些控制设计,并想使用它们,但我看到了一个问题。通常,复选框有4个图像:

  1. 时,当鼠标在
  2. 上检查
  3. 时,当它被选中时,鼠标在

上时,鼠标超过

  • 时,当鼠标处于正常状态时

但是状态并不存在,我向你们展示了我是如何做到的:

代码语言:javascript
复制
        <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>

到目前为止,我的模板工作得很好,但是正如你所看到的,我没有找到最后一个状态的方法,所以我在这里寻求帮助!

亲切的问候,

杰克

EN

回答 3

Stack Overflow用户

发布于 2012-02-16 23:34:57

您需要使用MultiTrigger才能对状态#4作出反应

例如:

代码语言:javascript
复制
<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>
票数 7
EN

Stack Overflow用户

发布于 2012-02-16 23:37:48

可以使用MultiTrigger测试多个属性值:

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2016-04-09 09:48:07

或者您只需更改StaticResource for OptionMark.MouseOver.GlyphStaticResource for OptionMark.Pressed.Glyph即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9320737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档