[C#][xaml] drag and drop entre 2 canvas
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:
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);
}
} |