2012-06-17 4 views
0

Я хотел бы изменить фоновое изображение моей кнопки каждый раз, когда пользователь нажимает ее. Я установил ImageSource на свое изображение. Когда мышь над кнопкой, моя кнопка не показывает изображение. Как установить изображение так, чтобы даже если кнопка мыши была нажата, все еще с изображением?изменение изображения кнопки

 <Button x:Name="recordButton" Content="" HorizontalAlignment="Left" Height="50" Margin="60,45,0,0" VerticalAlignment="Top" Width="50" Click="recordButton_Click"> 
     <Button.Background> 
      <ImageBrush ImageSource="play.png"/> 
     </Button.Background> 
    </Button> 

И еще один вопрос. Как изменить эти две фотографии? Их имена - «play.png» и «stop.png», оба находятся в разделе «Ресурсы».

 private bool recordStarted = false; 

    private void recordButton_Click(object sender, RoutedEventArgs e) 
    { 
     recordStarted = !recordStarted; 


     if(recordStarted) 
     { 
      ImageBrush brush1 = new ImageBrush(); 
      BitmapImage image = Properties.Resources.stop; 
      brush1.ImageSource = image; 
      recordButton.Background = brush1; 

     } 
    } 

Я попытался это, но ВС не может найти BitmapImage image = Properties.Resources.stop; Помогите, пожалуйста!

ответ

1

Я бы рекомендовал не устанавливать фон, чтобы быть изображением, но вместо того, чтобы установить содержание как образ

<Button x:Name="recordButton" HorizontalAlignment="Left" Height="50" Margin="60,45,0,0" VerticalAlignment="Top" Width="50" Click="recordButton_Click"> 
    <Image Source="play.png"/> 
</Button> 

Если вы хотите изменить изображение, вы можете сделать это в тексте, это самое простое использовать изображения, собранные в качестве ресурса, а не изображений в файле ресурсов

(recordButton.Content as Image).Source = new BitmapImage(new Uri("Images/stop.png", UriKind.Relative)); 

Если вы хотите использовать файл ресурсов, увидеть это SO post

+0

Хм. Но как это поможет сменить пикур? – omtcyfz

+0

Вы можете установить свойство Source изображения, см. Мое обновление –

+0

Спасибо. Но ... теперь после нажатия кнопки он больше не показывает изображение. Так что это не помогает :( – omtcyfz

0

Там ар е некоторые способы изменения фотографий:

  1. Пересмотрите шаблон управления кнопкой и используйте VisualStateManager.

  2. Переопределите шаблон управления и используйте Trigger.

  3. Вы можете попытаться связать содержимое этой кнопки с ее MouseOver: когда мышь, спрячьте одно изображение и покажите другое.

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