Bonjour
Je cherche à créer et insérer un Objet Composant qui contient des élément graphique, dans un Canvas, Mais je me heurte à chaque à l'exception "InvaliOperationException" avec le message suivant :
"Le thread appelant doit être en mode STA, comme l'exigent de nombreux composants de l'interface utilisateur."
j'ai testé deux cas,
la création du composant via l'évennement d'un appuie sur bouton
et Création suivant un évennement provenant d'une autre partie de mon application qui result d'une analyse.
ComposantIHM est une classe dont les attribut sont des UC qui décrivent l'aspect de mon composant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 private void button1_Click(object sender, RoutedEventArgs e) { InitComposantIHM(); } private void DrawPlan(object sender, SequenceAnalyse.AnalyseEndEventArgs ParArg ) { InitComposantIHM(); private void InitComposantIHM() { ComposantIHM Composant1= new ComposantIHM (); Composant1.SetLocation(PlanComposant.ActualWidth/2, PlanComposant.ActualHeight/2); InsertComposant(Composant1); }
la création fonctionne dans le premier cas, car lorsque j'effectue l'opération je me trouve dans le thread principal. Par contre dans le deuxième cas (celui dont j'ai besoin) l'operation est effectué à partir d'un thread de travail.
Est-il possible de revenir dans le thread principal pour que ma partie de code puisse fonctionner ?
merci d'avance pour vos réponse
Partager