Kann jemand die Bedeutung von manipulation modes wie TranslateX
, TranslateRailsX
, TranslateInertia
erklären? Was ist ein rail mode
? Und von welcher Trägheit sprechen sie?Manipulationsmodus erklärt
Antwort
Mit Schienen - wenn der Eingangsprozessor erkennt, ob die Manipulation hauptsächlich vertikal oder überwiegend horizontal erfolgt, bleibt er bei der Meldung von Übersetzungsdelta/kumulativen Werten an der jeweiligen Achse hängen. Wenn nicht - es erlaubt nur frei zu manipulieren, was auch immer Sie manipulieren. Rails-Flags müssen in Kombination mit den Nicht-Rails-Flags verwendet werden, so dass nur TranslateRailsX
nicht funktioniert. Sie brauchen beides und TranslateX
, um alles in Gang zu bringen.
Der Merker TranslateInertia
ermöglicht eine einfache Handhabung für Flicks oder Trägheitsdrehungen/Waagen im Falle der anderen Trägheitsflags. Grundsätzlich, wenn Sie das Flag zum TranslateX
zum Beispiel hinzufügen und Sie eine schnelle Flickgeste tun - erhalten Sie die Eingabeereignisse (ManipulationDelta
) für eine Weile, auch nachdem die Geste abgeschlossen ist. Sie erhalten auch das ManipulationInertiaStarting
Ereignis, wenn Sie einmal streichen, sobald der Eingabestream endet, damit Sie steuern können, wie weit der Wechsel geht, wenn Sie möchten. Sie können my extensions zu dem Argument dieses Ereignisses in WinRT XAML Toolkit auschecken, um mehr Kontrolle über die Ballistik des Films auch zu erhalten.
Ihre ManipulationDeltaEventArgs
haben eine IsIntertial
Eigenschaft, die Sie auch zu prüfen, verwenden können, wenn die Ereignisse, Sie werden immer direkt von Eingabeereignissen oder Folge eines leichten Schlag sind und auch Complete()
nennen, wenn Sie aus irgendeinem Grund das nicht fortsetzen wollen immer Delta-Ereignisse für den Film.
Wenn Sie beide TranslateRailsX und TranslateX brauchen, dann kommen wie die Msdn doc sagt: „Sie verbinden nicht * Werte mit TranslateRails * Werte übersetzen, werden diese als sich gegenseitig ausschließende Werte behandelt“? https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.manipulationsmodus – user362178
Hier ist ein einfaches Beispiel, das zeigt, wie ich TranslateRailsX/Y implementiert habe.
Ich wollte es nur horizontale Swipe registrieren, aber mit nur TranslateX/Y nahm es die linke oder rechte auf, auch wenn ich nur nach oben oder unten wischte.
Also nur ein einfaches XAML und wie in meiner Instanz möchte ich nur horizontale Swipes nicht die vertikalen Swipes.
XAML-Datei:
<Grid Background="WhiteSmoke">
<WebView Name="webview" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Grid>
xaml.cs Datei:
int x1;
int x2;
int y1;
int y2;
public MainPage()
{
this.InitializeComponent();
webview.ManipulationMode = ManipulationModes.TranslateRailsX | ManipulationModes.TranslateRailsY;
webview.ManipulationStarted += (s, e) => x1 = (int)e.Position.X;
webview.ManipulationStarted += (s, e) => y1 = (int)e.Position.Y;
webview.ManipulationCompleted += (s, e) =>
{
x2 = (int)e.Position.X;
y2 = (int)e.Position.Y;
System.Diagnostics.Debug.WriteLine(x1);
System.Diagnostics.Debug.WriteLine(x2);
System.Diagnostics.Debug.WriteLine(y1);
System.Diagnostics.Debug.WriteLine(y2);
if (x1 > x2)
{
System.Diagnostics.Debug.WriteLine("right");
};
if (x1 < x2)
{
System.Diagnostics.Debug.WriteLine("left");
}
};
Und jetzt habe ich folgendes auf einer vertikalen Swipe
x1 180
x2 180
y1 201
y2 386
Und horizontal Swipe
x1 89
x2 293
y1 371
y2 371
left or right
erhalten
Hoffe das hilft jemandem in der gleichen missliche Lage.
- 1. NSLayoutAttribute erklärt
- 2. Gradle Fehler: Konfiguration erklärt Abhängigkeit, die nicht erklärt wird
- 3. FFI: Wie erklärt `size_t`
- 4. Kadanes Algorithmus erklärt
- 5. Sun erklärt Zwischen
- 6. Android DateUtils Flags erklärt
- 7. SQL Server-Sperren erklärt
- 8. Fastboot Verwendungsbeispiel erklärt?
- 9. Werkzeugkette für WxWidgets erklärt
- 10. TypeScript verschiedene Dateierweiterungen erklärt?
- 11. Lambda im Racket erklärt
- 12. Bucket erklärt (nicht sortieren)
- 13. Probleme statische Enum erklärt, C#
- 14. erklärt android.support.v7.app in gradle
- 15. Freund Erklärung nicht vorwärts erklärt
- 16. MySQL Volltext Suche Ergebnis erklärt
- 17. Ein * (Ein Stern) Algorithmus erklärt
- 18. IntPtr, SafeHandle und HandleRef - Erklärt
- 19. verwenden, wenn eine Zeichenfolge erklärt
- 20. Clearcase View und Branch erklärt
- 21. Wie erklärt man ein MKPolygon
- 22. erklärt Enum in globalem Bereich
- 23. Java Memory erklärt (SUN JVM)
- 24. Variablenliste Feldinitialisierung in C erklärt
- 25. Best Clustering-Algorithmus? (Einfach erklärt)
- 26. Mit cin.getline mit Zeichenfolge erklärt
- 27. ‚nicht in diesem Bereich erklärt‘, wenn()
- 28. scoped Vor Ort beginnen Ende erklärt
- 29. Schnittstellen Methoden mit Abstracts erklärt als Parameter
- 30. Java-Blöcke, Closures, Lambdas ... einfach erklärt
Ich denke, dass API nur in WinRT/XAML ist und nicht WPF, also entfernte ich das WPF-Tag aus Ihrer Frage und fügte der Windows-Laufzeit eins für Klarheit hinzu. –