2016-07-28 127 views
0

在WPF中,我希望CheckBox中的标签像一个按钮一样工作,所以当我将复选框切换到ON时,我希望标签更改为一个按钮,并且当切换复选框时关闭,然后按钮变回标签。WPF复选框标签作为按钮

这里是我迄今为止

<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

你可以添加另一个按钮并显示/隐藏它绑定到该复选框 – Steve

回答

2

在你Checkbox.Content,创建一个StackPanel两者的TextBlock和Button。 然后,您可以将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> 

现在他们的可见性属性取决于您的DataContext对象中的IsSteps,所以当一个出现而另一个消失时。

+0

谢谢你的作品出色 –