A PileFlowPanel contains PileFlowItem objects ("flow items"). A PileFlowItem is responsible for animating its element and can contain any FrameworkElement-derived class.
The PileFlowCard class is used for displaying content with an optional mirror-like reflection in the PileFlowPanel beneath the content; this class is used in XAML to add elements of to PileFlowPanel.
The PileFlowPanel class also contains a label that can be configured to display the PileFlowItem data via the property ContentLabel.
Example
The following is a simplified version of the Pile Flow Panel sample app.
<Windowx:Class="WpfApplication58.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"Title="MainWindow"Height="645"Width="1078"><Grid><Grid.Resources><StyleTargetType="{x:Type Border}"x:Key="BorderStyle"><SetterProperty="BorderThickness"Value="1"/><SetterProperty="CornerRadius"Value="5"/><SetterProperty="BorderBrush"><Setter.Value><SolidColorBrushColor="Black"/></Setter.Value></Setter></Style><SolidColorBrushx:Key="mouseOverBrush"Color="Blue"/><SolidColorBrushx:Key="mouseOverLabelBrush"Color="LightBlue"/><SolidColorBrushx:Key="normalLabelBrush"Color="Snow"/><x:Arrayx:Key="localEmployeeList"Type="{x:Type TextBlock}"><TextBlock>Nancy Davolio</TextBlock><TextBlock>Andrew Fuller</TextBlock><TextBlock>Janel Leverling</TextBlock><TextBlock>Margaret Peacock</TextBlock></x:Array><DataTemplatex:Key="seriesTemplate"><CanvasWidth="{Binding Path=W}"Height="{Binding Path=H}"><Rectanglex:Name="rect"RadiusX="5"RadiusY="5"Width="{Binding Path=W}"Height="{Binding Path=H}"Fill="{Binding Path=Interior}"><Rectangle.Triggers><EventTriggerRoutedEvent="Mouse.MouseEnter"><EventTrigger.Actions><BeginStoryboard><Storyboard><ObjectAnimationUsingKeyFramesStoryboard.TargetName="rect"Storyboard.TargetProperty="Fill"><DiscreteObjectKeyFrameKeyTime="0:0:0"Value="{StaticResource mouseOverBrush}"/></ObjectAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger><EventTriggerRoutedEvent="Mouse.MouseLeave"><EventTrigger.Actions><BeginStoryboard><Storyboard><ObjectAnimationUsingKeyFramesStoryboard.TargetName="rect"Storyboard.TargetProperty="Fill"><DiscreteObjectKeyFrameKeyTime="0:0:0"Value="{Binding Path=Interior}"/></ObjectAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger></Rectangle.Triggers></Rectangle></Canvas></DataTemplate><DataTemplatex:Key="LabelTemplate"><Borderx:Name="border"DockPanel.Dock="Top"BorderThickness="1"CornerRadius="4"Background="{StaticResource normalLabelBrush}"><Border.BorderBrush><SolidColorBrushColor="Black"/></Border.BorderBrush><TextBlockFontFamily="Sans Serif"FontSize="12"Margin="2,2,2,1"HorizontalAlignment="Center"VerticalAlignment="Center"Text="{Binding Path=Text}"><TextBlock.Foreground><SolidColorBrushColor="Navy"/></TextBlock.Foreground></TextBlock><Border.Triggers><EventTriggerRoutedEvent="Mouse.MouseEnter"><EventTrigger.Actions><BeginStoryboard><Storyboard><ObjectAnimationUsingKeyFramesStoryboard.TargetName="border"Storyboard.TargetProperty="Background"><DiscreteObjectKeyFrameKeyTime="0:0:0"Value="{StaticResource mouseOverLabelBrush}"/></ObjectAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger><EventTriggerRoutedEvent="Mouse.MouseLeave"><EventTrigger.Actions><BeginStoryboard><Storyboard><ObjectAnimationUsingKeyFramesStoryboard.TargetName="border"Storyboard.TargetProperty="Background"><DiscreteObjectKeyFrameKeyTime="0:0:0"Value="{StaticResource normalLabelBrush}"/></ObjectAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger></Border.Triggers></Border></DataTemplate></Grid.Resources><ScrollViewerGrid.Row="2"Grid.ColumnSpan="2"VerticalScrollBarVisibility="Hidden"HorizontalScrollBarVisibility="Visible"CanContentScroll="true"><xctk:PileFlowPanelx:Name="_pileFlowPanel"MinHeight="175"ContentLabelOffsetY="100"ContentLabelSize="200,28"AnimationDuration="1000"LastMoveDecelarationRatio="0.6"FlowItemsCount="6"FlowItemRatio="70"ItemWidth="200"ItemHeight="200"FlowOffsetX="20"FlowOffsetY="20"CenterOffsetX="30"><xctk:PileFlowPanel.ContentLabel><BorderBackground="#ffff50"DockPanel.Dock="Left"Style="{StaticResource BorderStyle}"><TextBlockx:Name="_pileFlowLabel"Margin="0,5,0,0"TextAlignment="Center"/><Border.BitmapEffect><DropShadowBitmapEffect/></Border.BitmapEffect></Border></xctk:PileFlowPanel.ContentLabel><xctk:PileFlowCardx:Name="_employeesPileFlowCard"Tag="Employees"><StackPanel><TextBlockText="List of Employees"TextAlignment="Center"/><xctk:CheckListBoxItemsSource="{StaticResource localEmployeeList}"x:Name="_employeeListBox"/></StackPanel></xctk:PileFlowCard><xctk:PileFlowCardTag="Nancy Daviolo"><BorderBackground="Beige"><Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinitionWidth="Auto"/></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinitionHeight="Auto"/><RowDefinitionHeight="Auto"/><RowDefinitionHeight="Auto"/><RowDefinitionHeight="Auto"/><RowDefinitionHeight="Auto"/><RowDefinitionHeight="Auto"/><RowDefinitionHeight="Auto"/></Grid.RowDefinitions><TextBlockGrid.Column="1"Text="Nancy"/><TextBlockGrid.Row="1"Grid.Column="1"Text="Daviolo"/><TextBlockGrid.Row="2"Grid.Column="1"Text="Sales Representative"/><TextBlockGrid.Row="3"Grid.Column="1"Text="(206) 555-9857"/><TextBlockGrid.Row="4"Grid.Column="1"Text="507 - 20th Ave. E. Apt. 2A"/><TextBlockGrid.Row="5"Grid.ColumnSpan="2"Text="This employee has been working at IBM since March 10, 1999."TextWrapping="Wrap"/><ButtonGrid.Row="6"Grid.ColumnSpan="2"Content="Save"Width="75"/></Grid></Border></xctk:PileFlowCard><xctk:PileFlowCardTag="Sale price relative to distance"><BorderBackground="LightGray"><xctk:Chart><xctk:Chart.Legend><xctk:LegendVisibility="Collapsed"/></xctk:Chart.Legend><xctk:Chart.Areas><xctk:Area><xctk:Area.XAxis><xctk:AxisAxisLabelsLayout="ShowToFit"ShowAxisLabel="False"LabelTemplate="{StaticResource LabelTemplate}"/></xctk:Area.XAxis><xctk:Area.YAxis><xctk:AxisAxisLabelsLayout="ShowToFit"ShowAxisLabel="False"LabelTemplate="{StaticResource LabelTemplate}"/></xctk:Area.YAxis><xctk:Area.Series><xctk:SeriesDefaultInterior="Red"Template="{StaticResource seriesTemplate}"><xctk:Series.DataPoints><xctk:DataPointX="125"Y="6"/><xctk:DataPointX="150"Y="7"/><xctk:DataPointX="50"Y="4"/><xctk:DataPointX="25"Y="2"/></xctk:Series.DataPoints><xctk:Series.Layout><xctk:ColumnLayout/></xctk:Series.Layout></xctk:Series></xctk:Area.Series></xctk:Area></xctk:Chart.Areas></xctk:Chart></Border></xctk:PileFlowCard></xctk:PileFlowPanel></ScrollViewer></Grid></Window>
Target Platforms: Windows 11, Windows 10, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2