Bonjour à tous,
Je réalise une application qui doit permettre de cibler des défauts sur un patron (textile).
Pour cela, je récupère la position de la souris sur laquelle je souhaite placer une image représentant le point de défaut.
Je parviens facilement à récupérer la position de la souris mais pas à placer l'image!
Je précise que l'image n'est pas sur la scène mais dans l'arborescence du projet.
Pour chaque défaut, je souhaite placer une occurrence différente de cette image.
Voici de XAML:
Et voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <controls:TabItem Header="Vetement - Recto" Name="tabItem1"> <Canvas Background="AliceBlue" x:Name="Vetement"> <Polygon Name="MancheGauche" Points="30 50 30 100 70 110 70 50" Fill="Red" MouseMove="Get_Pos" MouseLeave="Reset_Pos" MouseLeftButtonUp="Send_Default" /> <Polygon Name="ZoneMilieu" Points="70 50 200 50 200 200 70 200" Fill="Black" MouseMove="Get_Pos" MouseLeave="Reset_Pos" MouseLeftButtonUp="Send_Default"/> <Polygon Name="MancheDroite" Points="200 50 200 110 240 100 240 50" Fill="Red" MouseMove="Get_Pos" MouseLeave="Reset_Pos" MouseLeftButtonUp="Send_Default" /> </Canvas> </controls:TabItem>
Merci par avance de votre aide.
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
16
17
18
19
20
21
22
23
24
25
26
27
28 private void Send_Default(object sender, MouseButtonEventArgs e) { try { Shape root = (Polygon)e.OriginalSource; this.x = e.GetPosition(relativeTo: (Polygon)e.OriginalSource).X; this.y = e.GetPosition(relativeTo: (Polygon)e.OriginalSource).Y; Image image = new Image(); Uri uri = new Uri("/Images/viseur.jpg", UriKind.Relative); ImageSource img = new System.Windows.Media.Imaging.BitmapImage(uri); image.Source = img; this.Vetement.Children.Add(image); Canvas.SetLeft(image, this.x); Canvas.SetTop(image, this.y); Canvas.SetZIndex(image, 100); MessageBox.Show("Votre défaut à été pris en compte sur la zone '" + root.Name + "' Coordonnées X=" + this.x + " Y=" + this.y); } catch (Exception ex) { MessageBox.Show(ex.Message); } }![]()
Partager