2009-08-07 8 views
0

J'ai un contrôle avec un événement de souris vers le bas où Id aime chnager l'image lorsque l'image est cliquée. Mais je ne peux pas sembler altérer aucune des propriétés d'images dans l'événement.WPF, Image MouseDown Événement

événement

private void Image_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     BitmapImage bitImg = new BitmapImage(); 
     bitImg.BeginInit(); 
     bitImg.UriSource = new Uri("./Resource/Images/Bar1.png", UriKind.Relative); 
     bitImg.EndInit(); 

     ((Image)sender).Source = null; 
     ((Image)sender).Width = 100; 
     ((Image)sender).Visibility = Visibility.Hidden; 
    } 

L'événement fait feu, et même la propriété .Visibility ne modifie pas l'image et la rendre cachée.

Qu'est-ce que je fais mal?

Répondre

1

En supposant que le fichier est dans votre application, vous devez utiliser le Pack URI scheme:

 var img = sender as Image; 
     BitmapImage bmp = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/Bar1.png")); 
     img.Source = bmp; 

Dans l'exemple ci-dessus, cela indiquerait un sous-dossier dans votre projet de Ressources/Images.

+0

hmmm changement ne marche pas encore, je le Bar1.png dans un dossier /Images/Bar1.pgn et ont la propriété définie comme une ressource Si je deliberatly manquer épelle l'image à barx.png et exeption est lancé disant qu'il ne peut pas le localiser, donc je sais qu'il trouve dans les ressources ... Ne met pas réellement à jour l'image à la nouvelle – PrimeTSS

+0

En regardant à nouveau votre code, vous définissez la source à null. Je ne vois pas où vous appliquez le BitmapImage à la source? –

+0

APPOLOGIES !!!!!!!! J'ai découvert pourquoi. J'ai un deux modèles sur ce contrôle un est un modèle "sélectionné", je n'ai pas mis l'événement de la souris sur ce modèle. Même si l'événement s'est déclenché, je pense que le modèle sélectionné a écrit le modèle non sélectionné qui a possiblement téléchargé le bitmap mais n'a pas vécu assez longtemps pour afficher et a été écrasé par le modèle sélectionné ..... Thankyou! – PrimeTSS