В Silverlight (на котором построен каркас Windows Phone 7) элемент управления Button
не имеет свойства Image
. Я предполагаю, что вы создали свои оригинальные кнопки, поместив элемент Image
в качестве дочернего элемента Button
. Предполагая, что вы хотите одинаковое поведение для всего набора кнопок, тогда может иметь смысл использовать визуальные состояния. Вы можете добиться единообразного внешнего вида, изменив непрозрачность ContentPresenter
, например Opacity
0,75 для «нормального» состояния и Opacity
1,0 для «выбранного».
Определить, какая кнопка является выбранной, было бы более сложной задачей, но если вы оберните свои кнопки в ListBox
, тогда вы можете использовать визуальное состояние «Выбрано» в ItemContainerStyle
.
Если вы хотите продолжить уже выбранный вами подход, то, учитывая, что вы знаете, что содержимое кнопки является Image
, вы можете сделать что-то вроде следующего:
private void button1_click(object sender, RoutedEventArgs e)
{
Button source = (Button)sender;
Image content = source.Content as Image;
if (null != content)
{
content.Source = new BitmapImage(new Uri("image path"));
}
}
В этом подходе вам, конечно, также потребуется обработать возврат других кнопок обратно в их «нормальное» состояние, которое подход ListBox
будет обрабатывать для вас.