Project Description
Silverlight Flow Layouts library is a control library allowing to create ItemsControls with a Cover-flow, Carousel or other 2D / 3D complex layouts. It targets Silverlight 4, is written in C# and targets average Silverlight Developpers

Live Demo

A live demo is accessible here: http://www.simonferquel.net/blog/flowlayouts/index.html.

Installation

Since last release (http://slflow.codeplex.com/releases/view/62907), you can install the controls directly from Visual Studio using these nuget commands :

  • Silverlight version : Install-Package FlowControls-sl
  • Windows Phone 7 version : Install-Package FlowControls-wp7
  • WPF version : Install-Package FlowControls-wpf


or with additional layout algorithms:

  • Silverlight version : Install-Package FlowControls.algos-sl
  • Windows Phone 7 version : Install-Package FlowControls.algos-wp7
  • WPF version : Install-Package FlowControls.algos-wpf



Features

  • Virtualisation: FlowItemsControl2D and FlowItemsControl3D can handle thousands of child elements with amazing performance
  • Style-ready: ItemContainerStyle of FlowItemsControl2D and FlowItemsControl3D can be easily styled to customize the look and feel of individual items including VisualState management
  • DataTemplate-ready: FlowItemsControl2D and FlowItemsControl3D are standard ItemsControl and expose an ItemTemplate property for templating their data source. Additionaly, the library provides an InConverFlowContentControl that can be used inside an ItemTemplate and exposes Selection / Mouse visual states
  • Extensibility: 2D and 3D layout logic is externalized. So default layout can be replaced by a custom made one. See IFlowLayout2DAlgorithm and IFlowLayout3DAlgorithm interfaces
  • Design-Time ready: provides a rich design-time experience inside Visual Studio 2010 and Expression Blend
  • Extensible Gesture API : Enables interaction with the controls in a natural way (with manipulation / inertia feature). Custom layout algorithms can provide their own hit testing logic for gesture based manipulations.
  • Silverlight 4, WPF 4.0 and Windows Phone 7 support
  • LayoutOffset property on FlowItemBase for better styling support
  • LayoutChanged event on IFlowLayout2DAlgorithm and IFlowLayout3DAlgorithm to notify FlowItemsControls to invalidate themselves
  • New Layout algorithm : CircleLayout


More to come !

  • More layouts !

Windows Phone remarks

Windows phone is very performance constrained platform. So you have to be very carefull and test a lot on real devices for performance.
After some tests on real devices on interim builds, I saw that in cases where the item templates are quite complex or use large images, virtualization can have an indesired impact on the scrolling performance. So Virtualization is an opt-in feature for this platform.
If you want to use this library to show many (100+) simple items (with fairly simple templates and no images), make sure to change the ItemPanelTemplate to FlowPanel2D or FlowPanel3D instead of NotVirtualizedFlowPanel2D or NotVirtualizedFlowPanel3D.

Last edited Dec 10, 2011 at 10:00 AM by simonferquel, version 10