Back to Devexpress

PushpinLocationAnimation.Duration Property

wpf-devexpress-dot-xpf-dot-map-dot-pushpinlocationanimation.md

latest4.9 KB
Original Source

PushpinLocationAnimation.Duration Property

Gets or sets the animation duration when the location of a pushpin element is specified on a map.

Namespace : DevExpress.Xpf.Map

Assembly : DevExpress.Xpf.Map.v25.2.dll

NuGet Package : DevExpress.Wpf.Map

Declaration

csharp
public Duration Duration { get; set; }
vb
Public Property Duration As Duration

Property Value

TypeDescription
Duration

A Duration structure.

|

Example

This example illustrates how to provide animation for a map pushpin.

To do this, it is necessary to create a PushpinLocationAnimation object and assign it to the MapPushpin.LocationChangedAnimation property. After that, it becomes possible to customize the animation duration (PushpinLocationAnimation.Duration) and easing function (PushpinLocationAnimation.EasingFunction).

In addition, you can change the pushpin state after its location animation is complete via the PushpinLocationAnimation.Completed event. In this example, this event is used to change the pushpin location randomly each time the bouncing animation effect is complete.

xaml
<Window x:Class="LocationAnimation.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        xmlns:dxm="http://schemas.devexpress.com/winfx/2008/xaml/map"
        Title="MainWindow" Height="350" Width="525" >    
    <Grid>
        <dxm:MapControl>
            <dxm:ImageTilesLayer>
                <dxm:ImageTilesLayer.DataProvider>
                    <dxm:OpenStreetMapDataProvider/>
                </dxm:ImageTilesLayer.DataProvider>
            </dxm:ImageTilesLayer>
            <dxm:VectorLayer>
                <dxm:MapItemStorage>
                    <dxm:MapPushpin x:Name="pushpin" TraceDepth="30" TraceStroke="Red" >
                        <dxm:MapPushpin.LocationChangedAnimation>
                            <dxm:PushpinLocationAnimation Duration="00:00:02" Completed="PushpinLocationAnimation_Completed" >
                                <dxm:PushpinLocationAnimation.EasingFunction>
                                    <BounceEase/>
                                </dxm:PushpinLocationAnimation.EasingFunction>
                            </dxm:PushpinLocationAnimation>
                        </dxm:MapPushpin.LocationChangedAnimation>
                    </dxm:MapPushpin>
                <dxm:MapItemStorage>
            </dxm:VectorLayer>
        </dxm:MapControl>
    </Grid>
</Window>
csharp
using System.Windows;
using DevExpress.Xpf.Map;
using System;

namespace LocationAnimation {

    public partial class MainWindow : Window {
        Random rand = new Random((int)DateTime.Now.Ticks);

        public MainWindow() {
            InitializeComponent();
            SelectRandomLocation();
        }

        private void PushpinLocationAnimation_Completed(object sender, EventArgs e) {
            SelectRandomLocation();
        }

        void SelectRandomLocation() {
            pushpin.Location = (new GeoPoint(rand.NextDouble() * 40, rand.NextDouble() * 40));
        }
    }
}
vb
Imports Microsoft.VisualBasic
Imports System.Windows
Imports DevExpress.Xpf.Map
Imports System

Namespace LocationAnimation

    Partial Public Class MainWindow
        Inherits Window
        Dim rand As Random = New Random(CInt(DateTime.Now.Millisecond))

        Public Sub New()
            InitializeComponent()
            SelectRandomLocation()
        End Sub

        Private Sub PushpinLocationAnimation_Completed(ByVal sender As Object, ByVal e As EventArgs)
            SelectRandomLocation()
        End Sub

        Private Sub SelectRandomLocation()
            pushpin.Location = (New GeoPoint(rand.NextDouble() * 40, rand.NextDouble() * 40))
        End Sub
    End Class
End Namespace

See Also

PushpinLocationAnimation Class

PushpinLocationAnimation Members

DevExpress.Xpf.Map Namespace