代码之家  ›  专栏  ›  技术社区  ›  wonea Ilya Smagin

WPF按钮打开或关闭有色状态

  •  4
  • wonea Ilya Smagin  · 技术社区  · 16 年前

    我试着创建一个按钮集,它有一个关闭或打开的状态,很多复选框没有检查。理想情况下,我想改变颜色,以代表两个不同的状态关闭(红色),绿色(开)。我试过设置一个控制模板,但这只会改变一个选择的颜色,然后一旦鼠标离开按钮的附近,它就会恢复到原来的颜色。

    <ControlTemplate.Triggers>
       <Trigger Property="IsPressed" Value="True">
          <Setter Property="Background" TargetName="Background" Value="Green"/>
       </Trigger>
    </ControlTemplate.Triggers>
    
    3 回复  |  直到 15 年前
        1
  •  6
  •   Community Mohan Dere    9 年前

    首先,您描述的是一个切换按钮。

    <Style x:Key="MyToggleStyle" TargetType="{x:Type ToggleButton}">
     <Style.Triggers>
       <Trigger Property="IsChecked" Value="True">
         <Setter Property="Background" Value="Green"/>
       </Trigger>
       <Trigger Property="IsChecked" Value="False">
         <Setter Property="Background" Value="Red"/>
       </Trigger>
     </Style.Triggers>
    </Style>
    

    here is a solution to a similar problem

        2
  •  0
  •   Taylor Leese    16 年前

    使用类似于以下的方法:

    <Button>
        ...
        <Button.Style>
            <Style>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding SomeField, Converter={StaticResource yourConverter}}" Value="yourValue">
                        <!-- set what you want here -->
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>
    
        3
  •  0
  •   David Brunelle    16 年前

    实际上,我可以用一个复选框。请允许我解释一下:

    WPF允许您定义控件模板,它基本上就是整个控件本身。您可以创建一个看起来像按钮的复选框。

    然而,正如有人所说,ToggleButton可能是您想要使用的。