WPF Affichage dynamique image

WPF Affichage dynamique image - C#/.NET managed - Programmation

Marsh Posté le 29-10-2015 à 11:57:15    

Bonjour,
 
je m'essaie au développement, et pour commencer je développe une application qui copie et / déplace des photos en s'appuyant sur la date de prise de vue pour classer par AAAA-MM (année mois) les dites photos.
histoire de complexifier un peu, je souhaite afficher dynamiquement pendant le classement la photo déplacée.
et c'est là ou ça coince un peu.
après moult recherches avec mon ami Alphabet, je reste sec.
 
je tente d'appeler une méthode pour "pousser" l'aperçu dans un contrôle xaml image
 

Code :
  1. private void Rafraichit(object item)
  2.         {
  3.             BitmapImage _image = new BitmapImage();
  4.             _image.BeginInit();
  5.             _image.CacheOption = BitmapCacheOption.None;
  6.             _image.UriCachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);
  7.             _image.CacheOption = BitmapCacheOption.OnLoad;
  8.             _image.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
  9.             _image.UriSource = new Uri(item.ToString(), UriKind.RelativeOrAbsolute);
  10.             _image.EndInit();
  11.             imageVisu.Source = _image;
  12.            
  13.             //System.Windows.Controls.Image value;
  14.             UpdateImageVisualisation UpdateImg = new UpdateImageVisualisation(imageVisu.SetValue);
  15.             Dispatcher.Invoke(UpdateImg, System.Windows.Threading.DispatcherPriority.Background,
  16.                 new object[] { System.Windows.Controls.Image.SourceProperty,  item });
  17.         }
  18.         //Test MAJ IMAJ


 
ça affiche bien l'image mais j'ai une erreur non répertoriée en appel du dispatcher....
 

Code :
  1. Une exception non gérée du type 'System.Reflection.TargetInvocationException' s'est produite dans mscorlib.dll


 
auriez-vous une idée ?
 
Merci,


---------------
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème
Reply

Marsh Posté le 29-10-2015 à 11:57:15   

Reply

Marsh Posté le 29-10-2015 à 15:09:43    

Quand tu fais des appels asynchrones sur des contrôles dans une UI, tu peux te retrouver en train de manipuler des trucs qui ne sont pas accessibles pour cause de thread différent. Ca pourrait être ça.
As tu regardé les détails de ton exception avec le debugger ou en faisant un ex.tostring() ?
 
à part l'underscore devant un nom de variable local c'est mal :o


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 29-10-2015 à 15:20:34    

en termes d'erreur, c'est ce que j'ai mis en exception. il n'y a pas de détail.
il faudrait peut-être que je code en async, comme en WCF ?

Reply

Marsh Posté le 29-10-2015 à 15:23:48    

Pas possible, y a toujours des détails. Mais tu ne gères sans doute pas l'exception...

 

TIP : Appuie sur Ctrl + Alt + E dans VS, et coche Thrown pour les Managed Exception Machinchose.

Message cité 1 fois
Message édité par TotalRecall le 29-10-2015 à 15:24:19

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 29-10-2015 à 15:34:22    

Merci TotalRecall,
 
je vais regarder et je ferai un retour.

Reply

Marsh Posté le 28-11-2015 à 17:33:13    

TotalRecall a écrit :

Pas possible, y a toujours des détails. Mais tu ne gères sans doute pas l'exception...
 
TIP : Appuie sur Ctrl + Alt + E dans VS, et coche Thrown pour les Managed Exception Machinchose.


 
 
en fait j'ai changé de méthode
 

Code :
  1. UpdateImageVisualisation UpdateImg = new UpdateImageVisualisation(imageVisu.SetValue);
  2.                 Dispatcher.Invoke(UpdateImg, System.Windows.Threading.DispatcherPriority.Background,
  3.                     new object[] { System.Windows.Controls.Image.DataContextProperty, item });


 
et ça a fonctionné

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed