Tinder control for your windows app

January 21 Microsoft showed off new features that are coming in Windows 10. Also they showed Office for touch. Part of this office for touch is also a Outlook touch version. In this new office version Joe Belfiore showed how you easily work through your email. With a simple right swipe you can flag an email while with a left swipe you can delete an email. During the presentation i saw people call this tinder for your email.

Last week i created an control that let you do the same in your app. The controls contains all animations and is easy to use in MVVM patterns.

With basic styling it looks like this:

How to get it?

You can get this cool control from my github repository: https://github.com/davesmits/NuGet/tree/master/src

and would love to take pull requests to make it even better.

How to use

So how can you use this control?

First need you need to define a listview in your xaml page and for the best experience make the listitems strech the full width of the listview.

Xaml:

<ListView x:Name="listview">
 <ListView.ItemContainerStyle>
  <Style TargetType="ListViewItem">
   <Setter Property="HorizontalAlignment" Value="Stretch"/>
   <Setter Property="HorizontalContentAlignment" Value="Stretch" />
  </Style>
 </ListView.ItemContainerStyle>
<ListView.ItemTemplate>

When you have the listview you need to define the item template, with this control in it. The control has 5 important properties you have to use:

  1. Content, this property sets the maincontent that is always visible.

  2. AcceptContent, this property is the content that get visible when you swipe to right

  3. AcceptCommand, this command will be executed when the user performs the right swipe. Make sure you bind a command. If there is no command set, or the command returns false when the canexecute is invoked the control wont let you do a right swipe.

  4. DeclineContent, same as the AcceptContent, just for left swipe.

  5. DeclineCommand, same as the AcceptCommand, just for left swipe.

Xaml:

<DataTemplate>
 <Grid>
  <controls:ActionListItem Foreground="Black" Height="60"
                           Background="White"
                           AcceptBackground="Green"
                           DeclineBackground="Red"
                           AcceptCommand="{Binding AcceptCommand}"
                           DeclineCommand="{Binding DeclineCommand}">
                        <controls:ActionListItem.Content>
                            <Grid Background="White" Margin="10, 5">
                                <Grid.RowDefinitions>
                                    <RowDefinition />
                                    <RowDefinition />
                                </Grid.RowDefinitions>
                                <TextBlock Text="{Binding Name}" Foreground="Black" FontWeight="SemiBold" />
                                <TextBlock Text="{Binding Description}" Foreground="Black" Grid.Row="1" />
                            </Grid>
                        </controls:ActionListItem.Content>

                        <controls:ActionListItem.AcceptContent>
                            <Grid Margin="20,0,0,0" HorizontalAlignment="Left">
                                <SymbolIcon Symbol="Accept" />
                            </Grid>
                        </controls:ActionListItem.AcceptContent>
                        <controls:ActionListItem.DeclineContent>
                            <Grid Margin="0,0,20,0" HorizontalAlignment="Right">
                                <SymbolIcon Symbol="Delete" />
                            </Grid>
                        </controls:ActionListItem.DeclineContent>
                    </controls:ActionListItem>
                </Grid>
            </DataTemplate>
  •   @onovotny @Nick_Craver @andygocke @davkean @VisualStudio Use git worktree instead cloning again?
  •   @tfsbuck Congrats
  •   @donasarkar updating :)
  •   RT @tfsbuck: The VSTS Activity Feed extension gives a summary of all recent changes of work items, commits, pull requests and builds. It te…
  •   @davkean @lifeng_lu here you are: https://t.co/zeab4UpLyy
  •   @davkean @lifeng_lu On it way! just happend again
  •   @davkean intermittent; but ones it started i stays the rest of the session that way. anything i can do make a log when it happens?
  •   @davkean yes. now happens often i need to toggle hide/show all files in the solution explorer to ensure the project… https://t.co/xqZlVb6Qbx
  •   @davkean branch switching and make sure the project system understands when new files are added / removed
  •   RT @VSTS: Power BI and VSTS - integration made easy. Our new feature Analytics views makes getting VSTS work tracking data into Power BI s…