2016-06-06 11 views

Antwort

2

Dies ist keine neue Seite, es ist einfach eine Art von Panel (wie Grid oder StackPanel) oben auf der Karte. Sie können es implementieren durch Gitter über andere Elemente platzieren und Einstellung seiner TranslateY dementsprechend etwas wie folgt aus:

<Grid x:Name="LayoutRoot"> 
    <maps:MapControl x:Name="Map"/> 

    <Grid x:Name="Overlay" Background="Red"> 
     <Grid.RenderTransform> 
      <CompositeTransform x:Name="OverlayTransform" TranslateY="300"/> 
     </Grid.RenderTransform> 
    </Grid> 
</Grid> 

Dann können Sie animieren OverlayTransform.TranslateY wie Sie sehen, passen. Wenn Sie durch Interaktion mit dem Benutzer Schiebe implementieren möchten, sollten Sie Manipulation behandeln [Erste/Delta/Abgeschlossen] Ereignisse, zum Beispiel:

<Grid x:Name="Overlay" Background="Red" ManipulationMode="TranslateY" ManipulationDelta="Overlay_OnManipulationDelta"> 

... 


private void Overlay_OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs args) 
{ 
    OverlayTransform.TranslateY += args.Delta.Translation.Y; 
} 

Von dort können Sie komplexere Logik zu bauen beginnen, wie einige Ankerpunkte für Ihre Panel oder hübsche Slide-In/Slide-Out Animationen.

+0

Hallo, Danke für Ihre Antwort. Ich habe 'ManipulationDelta',' ManipulationStart' und 'ManipulationCompleted' Ereignisse versucht. Scheint so, als ob "ManipulationStart" und "ManipulationCompleted" funktionieren, aber "ManipulationDelta" nicht. Sogar der Haltepunkt wird nicht innerhalb der 'Overlay_OnManipulationDelta'-Funktion getroffen. – mnciitbhu

+0

Fertig! Ich habe "TranslateY" in "TranslateRailsY" vertippt. **Mein Fehler**. Danke – mnciitbhu

+0

Froh, dass es geholfen hat! –