I was looking for events exposed by the XamTileManager and associated classes that would allow us to customize how drag and drop re-arranging of tiles works, however I haven't seen any (or any other extensibility points not related to simple visual/animation changes).
For the sake of this conversation let's assume we are talking about AllowTileSizing="Individual", TileLayoutOrder="UseExplicitRowColumnOnTile" and ExplicitLayoutTileSizeBehavior="SynchronizeTileHeightsAcrossColumns" for the NormalModeSettings.
For example, instead of "swapping" two tiles on drop (essentially exchanging the value of XamTileManager.Column/Row attached properties between the two) we'd like to "move" the dragged XamTile to the new location and adjust the Row/Column around the old/new location.
See the attached image for two examples of what we'd like to achieve with regards to moving a tile vertically between rows.
In the first example the user drags tile 3 to the right of tile 4. Handing an event and perhaps leveraging hit testing we'd like to give feedback to the user that they can drop to the right of 4. Upon dropping we'd like to be able to handle an event that would allow us to change the XamTileManager.Row/Column values for "Tile 3" from 0/2->1/1 respectively.
In the second example the user drags and drops "Tile 2". We'd like to handle an event and adjust the Row/Column values for all tiles to the right of it in it's original position in addition to updating it's own Row/Column values.
Following on from this you can imagine there are additional scenarios where we'd want to adjust the values for tiles in both the source/destination row in addition to the dragged XamTile when moving across rows. We'd also want to implement similar shuffling of Row/Column values within a row and also essentially creating "new rows" (when dropped below all existing rows).
Hello Miguel,
Thank you for your post. I have been looking into and I can say that currently you are only allowed to swap the positions of two tiles, so I can suggest you see this forum thread where it is explained how to turn off the default drag and drop functionality and create your own one:
http://es.infragistics.com/community/forums/t/75097.aspx
Hope this helps you.