На ум приходит пара вариантов, в зависимости от того, что именно вы пытаетесь выполнить.
Когда-то сценарий означает, что у вас есть кнопка, которую вы хотите использовать как переключатель, когда вы нажимаете ее один раз, и она остается нажатой, пока вы не нажмете ее снова, как кнопка воспроизведения на магнитофоне (помните те?).
Если это то, что вы ищете, я бы создал свойство boolean
в вашем файле кода, например IsPlaying
, которое указывает, нажата ли ваша кнопка в данный момент или нет.
Затем вы можете создать ValueConverter
, который переводит значения true
и false
в разные изображения.Вот запись о создании ValueConverter
.В статье говорится о преобразовании bool
в Visibility
, но концепция та же.
В конвертере BooleanToImage
, или как вы его называете, вам нужно решить, какое изображение показать, и загрузить его как Bitmap
.Затем в вашем .xaml
вы свяжетесь со свойством IsPlaying
и установите конвертер на BooleanToImage
.Этот подход работает довольно хорошо для многих сценариев, и он хорош и опрятен, так как вам не нужно думать о том, какое изображение воспроизводится;вы можете подумать, будет ли ваше приложение IsPlaying
.
Другой сценарий - вы хотите кратко отобразить изображение при нажатии кнопки, например анимацию, а затем вернуться в предыдущее состояние.В этом случае лучше всего использовать VisualStateManager
, что позволяет вам определять различные варианты появления вашей кнопки в различных состояниях, таких как Normal
и Clicked
.Вы можете применять анимацию для перехода между состояниями.Вот обход , который демонстрирует использование VisualStateManager
.