Пользовательская кнопка переключения и состояния - как придать одинаковый эффект как MouseOver, так и Checked? - PullRequest
2 голосов
/ 20 августа 2010

Я сделал пользовательскую кнопку на основе изображения, более или менее используя процесс, найденный здесь:

http://www.kirupa.com/blend_silverlight/creating_custom_button_pg1.htm

Я добавил состояние MouseOver, которое увеличивает изображение в 1,5 раза, поэтому при наведении курсора на изображение оно становится немного больше, а затем уменьшается до нормального размера при удалении мыши. Все хорошо, это именно то, что я хочу.

Теперь я хочу сделать кнопку переключения, которая делает то же самое, но когда кнопка переключения нажата, размер изображения должен оставаться в 1,5 раза, чтобы показать, что он отмечен. Я попытался добавить тот же эффект увеличения в состояние «Проверено» и получил предупреждение об изменении свойства объекта в нескольких группах состояний.

Это имеет смысл ... если вы нажимаете кнопку переключения, состояние устанавливается в Checked в CheckStates, но когда вы убираете мышь, оно масштабирует изображение обратно в Normal в CommonStates. Таким образом, изображение не может придерживаться в 1,5 раза.

Так как именно я могу заставить эту работу? Есть ли способ «убить», изменяя состояние мыши, если кнопка отмечена?

1 Ответ

1 голос
/ 22 августа 2010

Теоретически 2 эффекта (зависание и проверенное состояние) должны быть разделены. Если активна опция «Увеличено при проверке», вы все равно можете ожидать, что при наведении курсора элемент управления увеличится, поэтому эффекты будут аддитивными.

Чтобы избежать столкновения, которое вы испытали, вам нужно применить изменения раскадровки к 2 различным элементам в элементе управления. Просто убедитесь, что оба имеют одинаковое общее влияние на контроль. Это может означать введение дополнительного элемента над существующим элементом (например, сетка над сеткой флажков).

Надеюсь, это поможет.

...