wpf复选框标签为按钮

本文关键字:按钮 标签 复选框 wpf | 更新日期: 2023-09-27 17:59:07

在WPF中,我希望复选框中的标签表现得像一个按钮,所以当我将复选框切换到ON时,我希望标签变为一个按钮;当我将选中框切换到OFF时,按钮将变回标签。

这是我迄今为止拥有的

<CheckBox Margin="2,0,2,0"
                            IsChecked="{Binding IsSteps}"
                            HorizontalAlignment="Stretch"
                            VerticalAlignment="Bottom"
                            Height="32"
                            FocusVisualStyle="{x:Null}"
                            Style="{StaticResource SliderCheckBoxStyle}">
    <CheckBox.Content>
        <TextBlock Text="Steps" Foreground="#FFFFFFFF" FontFamily="Lucida Sans" FontSize="8" FontWeight="Bold"/>
    </CheckBox.Content>
</CheckBox>

wpf复选框标签为按钮

在您的复选框中。内容,创建一个同时具有TextBlock和Button的StackPanel。然后,您可以绑定您的TextBlock。可见性和按钮。使用触发器和setter访问"IsSteps"。

<CheckBox Margin="2,0,2,0"
                            IsChecked="{Binding IsSteps}"
                            HorizontalAlignment="Stretch"
                            VerticalAlignment="Bottom"
                            Height="32"
                            FocusVisualStyle="{x:Null}"
                            Style="{StaticResource SliderCheckBoxStyle}">
    <CheckBox.Content>
        <StackPanel>
            <TextBlock Text="Steps" Foreground="#FFFFFFFF" FontFamily="Lucida Sans" FontSize="8" FontWeight="Bold">
                <TextBlock.Style>
                    <Style TargetType="TextBlock">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding IsSteps}" Value="True">
                                <Setter Property="Visibility" Value="Collapsed">
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                <TextBlock.Style>
            </TextBlock>
            <Button>
                <Button.Style>
                    <Style TargetType="Button">
                        <Style.Triggers>
                           <DataTrigger Binding="{Binding IsSteps}" Value="False">
                               <Setter Property="Visibility" Value="Collapsed">
                           </DataTrigger>
                        </Style.Triggers>
                    </Style>
                <Button.Style>
            </Button>
        </StackPanel>
    </CheckBox.Content>
</CheckBox>

现在,它们的Visibility属性取决于DataContext对象中的IsSteps,因此当一个出现而另一个消失时。