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>
  •   @TwitterSupport great move!
  •   Gave my #ActivityFeed extension for @VSTS some valentine's love by giving it a fresh new look. Get it here… https://t.co/RiTSWr4mQL
  •   @DrGigabit love this too: https://t.co/G3YsSJzafK There is a mismatch between what science knows and what business does
  •   @aaronbjork anything in pipeline to work more with target dates. or at least give something that can be disuccesed witih stakeholders?
  •   @aaronbjork we are using the kanban boards and never the sprints; anymore; this makes delivery plans kind of useless. (1/2)
  •   3 of the @vsts extensions i was involved in now on the homepage of the marketplace https://t.co/mM9h0F8ZVu
  •   @JenMsft w00t mouse delays fixed?
  •   @agent766 drop me an email and will help you dave@familie-smits.com
  •   @willsmythe and for widgets you can include platform styling. can hubs do that ? cant find method for it neither (get same headers etc)
  •   @willsmythe for my Project Teams extension want to make it possible to favorite teams. not really find the right control in that library