Come posso allegare eventi DragStarted
DragDelta
a una griglia in windows 8/WinRT
. Ho fatto lo stesso con Windows Phone con il metodo GestureService.GetGestureListener()
. Ho provato a sostituire il codice con ManipulationStarted & ManipulationDelta eventi in Windows 8. Ma il risultato non è lo stesso. In Windows Phone per un singolo trascinamento entra in DragDelta eventi 2 o più volte. Ma d'altra parte in Windows 8, nell'evento ManupulationDelta, si attiva solo una volta per l'operazione di trascinamento simile.Implementazione degli eventi DragDelta DragStarted in Windows 8/WinRT
risposta
Sì, penso di sapere cosa vuoi.
Diciamo che avete un po 'XAML come questo:
<Grid Margin="50">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Rectangle Fill="Blue" x:Name="MyRect" />
</Grid>
si desidera spostare quel rettangolo intorno al Grid
trascinandola.
Proprio di questo codice:
public MainPage()
{
this.InitializeComponent();
MyRect.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY;
MyRect.ManipulationDelta += Rectangle_ManipulationDelta;
MyRect.ManipulationCompleted += Rectangle_ManipulationCompleted;
}
private void Rectangle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
var _Rectangle = sender as Windows.UI.Xaml.Shapes.Rectangle;
var _Transform = (_Rectangle.RenderTransform = (_Rectangle.RenderTransform as TranslateTransform) ?? new TranslateTransform()) as TranslateTransform;
_Transform.X += e.Delta.Translation.X;
_Transform.Y += e.Delta.Translation.Y;
}
private void Rectangle_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
var _Rectangle = sender as Windows.UI.Xaml.Shapes.Rectangle;
_Rectangle.RenderTransform = null;
var _Column = System.Convert.ToInt16(_Rectangle.GetValue(Grid.ColumnProperty));
if (_Column <= 0 && e.Cumulative.Translation.X > _Rectangle.RenderSize.Width * .5)
_Rectangle.SetValue(Grid.ColumnProperty, 1);
else if (_Column == 1 && e.Cumulative.Translation.X < _Rectangle.RenderSize.Width * -.5)
_Rectangle.SetValue(Grid.ColumnProperty, 0);
var _Row = System.Convert.ToInt16(_Rectangle.GetValue(Grid.RowProperty));
if (_Row <= 0 && e.Cumulative.Translation.Y > _Rectangle.RenderSize.Height * .5)
_Rectangle.SetValue(Grid.RowProperty, 1);
else if (_Row == 1 && e.Cumulative.Translation.Y < _Rectangle.RenderSize.Height * -.5)
_Rectangle.SetValue(Grid.RowProperty, 0);
}
Per questo:
Speranza io sono vicino! Buona fortuna!
Thx per aver postato questo fantastico codice. Mi ha aiutato molto con il mio incarico! Tuttavia, non capisco come funziona e perché stai oring due modalità di manipolazione (xey) nel costruttore della pagina principale? Puoi spiegare il tuo codice passo dopo passo? Grazie mille! Sto davvero cercando di capire cosa sta succedendo. :) –
Bel pezzo di drag and drop al di fuori del GridView. La parte divertente è che continua a muoversi quando si fa scorrere e rilasciare, almeno quando si è impostato ManipulationMode = "Tutto": D –
- 1. Qual è una buona implementazione degli eventi deboli per silverlight?
- 2. Registrazione degli eventi in un programma di servizio di Windows
- 3. Gestione degli eventi in Haskell
- 4. Gestione degli eventi in Java
- 5. Windows C# CheckedListBox Checked Item Gestione degli eventi
- 6. Implementazione Boost Mutex per Windows
- 7. implementazione C# -come eventi in Android/Java
- 8. Test degli eventi socket.io
- 9. Elaborazione degli interrupt in Windows
- 10. Rilevamento degli eventi di chiamata in ios
- 11. Monitoraggio degli eventi globali NSEvent in background
- 12. Unità test degli eventi COM?
- 13. Robolectric (android): test degli eventi?
- 14. Elenco degli eventi JSF 2?
- 15. C#: comprensione sintassi degli eventi
- 16. Domanda su Eventi Windows
- 17. Gestione degli eventi con PowerShell?
- 18. Come posso ascoltare gli eventi degli appunti in node.js?
- 19. Implementazione del controllo versione degli oggetti DB
- 20. Implementazione di eventi nel mio oggetto
- 21. Implementazione Schema/Lisp di Windows
- 22. Il logger degli eventi in C# richiede i privilegi di amministratore per scrivere i registri nel Visualizzatore eventi di Windows?
- 23. Come disattivare la barra degli indirizzi visualizzata sugli eventi js in IE 11 su Windows 8.1
- 24. Flash: utilizzo degli eventi della rotellina del mouse in modalità schermo intero (Windows e Mac)
- 25. Registratore eventi in Windows 10 Universal Apps
- 26. Applicazione, migliorare le prestazioni degli eventi tattili
- 27. Esempi di implementazione degli oggetti di query
- 28. Mutex ed eventi su Windows
- 29. Windows Phone 8 Accelerometro eventi
- 30. Implementazione del pattern di eventi di dominio in Java?
Hai impostato 'IsManipulationEnabled = true' sulla tua griglia? –
Non ho trovato nessuna proprietà di questo tipo sulla griglia. Ho impostato la proprietà ManipulationMode = "All" –
Mi dispiace - Mi sono confuso con la griglia WPF - il 'Windows.UI.Xaml.Controls.Grid' ha la manipolazione abilitata da' ManipulationMode' come hai detto tu. –