Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ToggleButtons in WPF

I have two ToggleButtons. I want only one of them to be in the Pressed state at any time. So let's say Model ToggleButton is pressed:

I want to achieve the below concepts:

  1. If I press Drawing ToggleButton, the Model ToggleButton will be unpressed and Drawing ToggleButton will go to pressed state.
  2. If press the Model Button which is in the pressed state nothing will happen.

By the way here is all I have done so far :(

<ToggleButton Width="50" Height="23"  Margin="0 0 0 0">Model</ToggleButton>
<ToggleButton Width="50" Height="23"  Margin="0 0 7 0">Drawing</ToggleButton>

Update:

Using the provided link under the comments, I came up with this:

<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Model" IsChecked="True" />
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Drawing" />

Now the above code gives me two buttons, but how can I style these? I know how to style. But I don't know what to style here? I mean I have already filled the style property here how can I style the ToggleButton itself?

enter image description here

like image 480
Vahid Avatar asked Oct 18 '25 08:10

Vahid


1 Answers

Since RadioButton inherits from ToggleButton, you can set ToggleButton style to it and use BasedOn to inherit default style of ToggleButton like this:

<RadioButton GroupName="Test" Width="50" Height="23" Margin="0 0 7 0"
                Content="Model">
    <RadioButton.Style>
        <Style TargetType="ToggleButton"
               BasedOn="{StaticResource {x:Type ToggleButton}}">
            <Setter Property="Background" Value="Red"/>
            <!-- Set other properties here-->
        </Style>
    </RadioButton.Style>
</RadioButton>
like image 77
Rohit Vats Avatar answered Oct 20 '25 23:10

Rohit Vats