代码之家  ›  专栏  ›  技术社区  ›  Qwertie

WPF:如何制作一个“推送式”复选框?

  •  9
  • Qwertie  · 技术社区  · 16 年前

    <CheckBox x:Name="test">
        Testing!
        <CheckBox.Template>
            <ControlTemplate>
                <Button>
                    <ContentPresenter/>
                </Button>
            </ControlTemplate>
        </CheckBox.Template>
    </CheckBox>
    

    3 回复  |  直到 16 年前
        1
  •  13
  •   rmoore    16 年前
        2
  •  6
  •   m1k4    16 年前

    <ToggleButton Name="tb"  Height="45" Width="45">
            <ToggleButton.Style>
                <Style TargetType="{x:Type ToggleButton}">
                    <Setter Property="Content" Value="False"/>
                    <Style.Triggers>
                        <Trigger Property="IsChecked" Value="True">
                            <Setter Property="Content" Value="True"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ToggleButton.Style>
        </ToggleButton>
    

    <CheckBox>
            <CheckBox.Template>
                <ControlTemplate TargetType="CheckBox">
                    <ToggleButton x:Name="toggleButton">
                    </ToggleButton>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsChecked" Value="True" SourceName="toggleButton">
                            <Setter Property="Content" Value="True"/>
                        </Trigger>
                        <Trigger Property="Content" Value="True">
                            <Setter Property="IsChecked" Value="True"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                 </ControlTemplate>
            </CheckBox.Template>
        </CheckBox>
    
        3
  •  2
  •   Eddie Deyo    16 年前

    我同意ToggleButton是可行的方法,但如果你想让你的内容显示在你的示例中,请尝试将ContentPresenter声明更改为:

    <ContentPresenter Content="{TemplateBinding Content}" />