Я хотел бы изменить вид кнопки после нажатия кнопки. Например, у меня есть два шаблона beforeClicking
и afterClicking
:Как изменить шаблоны после нажатия кнопки
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button" x:Name="beforeClicking">
<Border Name="border" Background="Transparent" BorderThickness="1" BorderBrush="Black">
<ContentPresenter/>
</Border>
</ControlTemplate>
<!--It is not permitted, but that is pseudocode(what I want)
<ControlTemplate TargetType="Button" x:Name="afterClicking">
<Border Name="border" Background="Transparent" BorderThickness="10" BorderBrush="Black">
<ContentPresenter/>
</Border>
</ControlTemplate>
-->
</Setter.Value>
</Setter>
</Style>
То, что я хочу, когда кнопка не нажата, то шаблон beforeClicking
должен быть постоянно используется и ничего (шаблон или вид) не должен быть изменен. Однако, если пользователь нажимает кнопку, то кнопка должна использовать шаблон afterClicking
постоянно, и вид кнопки не должен изменяться.
Это при первом нажатии кнопки используется шаблон afterClicking
. При втором нажатии кнопки используется шаблон beforeClicking
. При третьем нажатии на кнопку используется шаблон afterClicking
. При четвертом нажатии кнопки используется шаблон afterClicking
. И так далее.
Я хотел бы получить такое поведение только с помощью XAML, поскольку используется подход MVVM.
Как добиться такого поведения?
Он работает нормально, но если я нажимаю во второй раз, то шаблон кнопки не возвращается в исходное состояние. Пожалуйста, см. Мой обновленный ответ. – StepUp
О, извините, неправильно понято; не понимал, что вы хотите «переключиться», подумал, что вы хотите, чтобы он держался. В таком случае вам лучше использовать ToggleButton? Затем вы можете связать свой BorderThickness с триггером свойства IsChecked. –
, пожалуйста, напишите свой ответ о кнопке переключения, и я приму это. – StepUp