在WPF中,我希望CheckBox中的标签表现得像一个按钮,所以当我将复选框切换为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>
答案 0 :(得分:2)
在Checkbox.Content中,创建一个包含TextBlock和Button的StackPanel。 然后,您可以使用触发器和设置器将TextBlock.Visibilty和Button.Visibilty绑定到“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,因此当一个出现时,其他一个消失。