2016-07-28 126 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

謝謝你的作品出色 –