2016-11-18 3 views
0

У меня есть простая кнопка, и мне бы хотелось, чтобы у нее было поведение «липкой» кнопки, например, визуально она имеет два состояния (подобно переключателю). Другими словами, я бы хотел, чтобы он сохранял свой нажатый стиль даже после того, как я отпустил кнопку мыши, но это нужно было бы щелкнуть.Как реализовать кнопку с двумя состояниями

Есть ли способ легко сделать это в WPF? Я использую Fluent, но при необходимости могу изменить его.

<Fluent:Button Header="myButton" Command="{Binding ToggleCommand}" SizeDefinition="Small"> 
    <Fluent:Button.Icon> 
     <Grid Width="16" Height="16"> 
      <Image Source="../Images/16x16/icon.png"/> 
     </Grid> 
    </Fluent:Button.Icon> 
</Fluent:Button> 

Что-то вроде этого:

1- not-pressed 2- pressed

PS:

Я использую MVVM, и в Command, я проверяю и изменяющих bool чтобы узнать, в каком состоянии находится кнопка. Я мог бы привязать его к свойству кнопки, если это поможет в любом случае.

+4

'ToggleButton'? – ASh

+1

Вы должны взглянуть на ['ToggleButton'] (https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.togglebutton (v = vs.110) .aspx) - it в основном делает то, что вы ищете, хотя оно также имеет третье состояние «_indeterminate_» ('null'). – Grx70

+0

Я вернулся, чтобы ответить на свой (теперь глупый) вопрос, но вы, ребята, были быстрее! Я просто нашел этот ToggleButton в других ответах, хотя, когда я посмотрел его час назад, я его не нашел. Благодаря! –

ответ

2

Оказывается, есть компонент ToggleButton, который выполняет именно то, что я искал. Глупый я, потому что не знал, что он существует, в первую очередь.

Смежные вопросы