Bonjour,

voila jusque-la j'arrivais à faire un drag and drop d'un rectangle sur un canvas en xaml avec les fonctions ci-dessous mais maintenant je voudrais faire un drag and drop d'un rectangle entre 2 canvas (le passer d'un canvas à un autre ) mais mes fonctions ne fonctionnent pas, elles me bougent mes rectangles un peu n'importe comment donc je voulais savoir si quelqu'un voyait ce qui n'allait pas dans mes fonctions.

merci pour vos conseils

mat
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
public void rectEvenement_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                DragDropEffects effects;
                DataObject data = new DataObject();
                data.SetData(typeof(UIElement), sender);
                effects = DragDrop.DoDragDrop(canvasJour, data,          DragDropEffects.Move);
            }
        }
 
 
       public void canvasJour_DragEnter(object sender, DragEventArgs e)
       {
            if (e.Data.GetDataPresent(typeof(UIElement)))
            {
                e.Effects = DragDropEffects.Move;
            }
            else
            {
                e.Effects = DragDropEffects.None;
            }
        }
 
        //on bouge l'élément sur le canvas
        public void canvasJour_DragOver(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(typeof(UIElement)))
            {
                e.Effects = DragDropEffects.Move;
            }
            else
            {
                e.Effects = DragDropEffects.None;
            }
        }
 
        //on repose l'élément à sa nouvelle place
        public void canvasJour_Drop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(typeof(UIElement)))
            {
                Canvas.SetLeft((UIElement)e.Data.GetData(typeof(UIElement)), e.GetPosition(canvasJour).X);
                Canvas.SetTop((UIElement)e.Data.GetData(typeof(UIElement)), e.GetPosition(canvasJour).Y);
            }
        }