Public Partial Class Page:Usercontrol
{ Bool Isdragdropineffect =False; Point Pos; Public Page () { Initializecomponent (); // Loop through all the uielements in the canvas // And attach mouse event handlers to the element Foreach(UielementUieleInCanvasparent. Children) { Uiele. mousemove + =New Mouseeventhandler(Element_mousemove ); Uiele. mouseleftbuttondown + =New Mousebuttoneventhandler(Element_mouseleftbuttondown ); Uiele. mouseleftbuttonup + =New Mousebuttoneventhandler(Element_mouseleftbuttonup ); } } Void Element_mousemove (ObjectSender,MouseeventargsE) { If(Isdragdropineffect) { FrameworkelementCurrele = senderAs Frameworkelement; // Retrieving the item's current X and Y position DoubleXpos = E. getposition (Null). X-pos. X; DoubleYpos = E. getposition (Null). Y-pos. Y; // Re-position Element Currele. setvalue (Canvas. Topproperty, ypos + (Double) Currele. getvalue (Canvas. Topproperty )); Currele. setvalue (Canvas. Leftproperty, xpos + (Double) Currele. getvalue (Canvas. Leftproperty )); // Reset the new position value Pos = E. getposition (Null); } } Void Element_mouseleftbuttondown (ObjectSender,MousebuttoneventargsE) { FrameworkelementFele = senderAs Frameworkelement; Isdragdropineffect =True; // X and Y coords of mouse pointer position Pos = E. getposition (Null); // Enable Mouse capture on Element Fele. capturemouse (); // Set the cursor to 'hand' when mouse pointer is over element Fele. cursor =Cursors. Hand; } Void Element_mouseleftbuttonup (ObjectSender,MousebuttoneventargsE) { If(Isdragdropineffect) { FrameworkelementEle = senderAs Frameworkelement; Isdragdropineffect =False; // Removes Mouse capture from element being dragged Ele. releasemousecapture (); } }
}
This sectionCodeChange all elements in canvascontent to drag-and-drop.