Skip to content
This repository has been archived by the owner. It is now read-only.
Xamarin Forms Labs is a open source project that aims to provide a powerful and cross platform set of controls and helpers tailored to work with Xamarin Forms.
C# Other
  1. C# 99.8%
  2. Other 0.2%
Branch: master
Clone or download
Latest commit 63d0187 Mar 6, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Merge branch 'master' of Jun 18, 2016
.nuget Build System Updates Jul 23, 2016
Design Major re-factoring to 2.0 structure is mostly complete at this point. Nov 30, 2014
Samples/XLabs.Samples/XLabs.Samples.UWP Cleaned up nuspec packages to support .netstandard and pcl projects Oct 10, 2016
docs Nuspec and reference updates Jun 15, 2016
nuspec Updates to build script, updated version in nuspec files Nov 12, 2016
samples Removed unnecessary files Sep 29, 2016
screenshots Android & iOS hybrid screenshots Feb 25, 2015
src Merge pull request #1298 from mr-wheelkers/Extending_HybridView_prope… Mar 6, 2017
tests Build Script updates Nov 12, 2016
tools Updates to build script, updated version in nuspec files Nov 12, 2016
.gitignore Updated .gitignore for cake build files Jul 14, 2016
Doxyfile Initial version of refactored code base with new unit test projects a… May 3, 2016
LICENSE updating license to Apache close #48 Jun 20, 2014 Update with notice Dec 14, 2016
appveyor.yml Updates to build script, updated version in nuspec files Nov 12, 2016
build.cake Merge branch 'master' of Nov 18, 2016 Added osx cake build bootstrapper Jul 14, 2016
build.ps1 Fix env path can have empty entries in build.ps1 Aug 12, 2016
settings.json Build Script updates Nov 12, 2016
version.json Build Script updates Nov 12, 2016

Xamarin Forms Labs Build status

Build status

XLabs is a open source project that aims to provide a powerful and cross platform set of services and controls tailored to work with Xamarin and Xamarin Forms.

##NOTICE: This project is no longer maintained. It may not work with newer versions of Xamarin.Forms.

Call for action for all Xamarin Developers, embrace this project and share your controls and services with the community, add your own control to the toolkit.

Important for developers The master branch is the current development branch. The v.2.0 is the stable branch.

Find a Bug or Fix a Bug [Issue Tracker] (

Available controls

Available services

  • Accelerometer
  • Cache
  • Camera (Picture and Video picker, Take Picture, Take Video)
  • Device (battery info, device info, sensors, accelerometers)
  • Display
  • Geolocator
  • Phone Service (cellular network info, make phonecalls)
  • SoundService
  • Text To Speech
  • Secure Storage
  • Settings

Available Mvvm helpers (Beta)

  • ViewModel (navigation, isbusy)
  • ViewFactory
  • IOC
  • IXFormsApp (application events)

Available Plugins

  • Serialization (ServiceStackV3, ProtoBuf, JSON.Net)
  • Caching (SQLLiteSimpleCache)
  • Dependency Injection containers (TinyIOC, Autofac, NInject, SimpleInjector, Unity)
  • Web (RestClient)
  • Charting (Line, Bar & Pie) (Alpha)


We are working in a great wiki on how to use the controls and services.

Good forum post helping you setup and use XLabs

Using the MVVM Helpers

ViewFactory Coming soon

Using the controls

Add XLabs.Forms reference to your projects , main pcl, ios, android, and wp.

Xaml :

Reference the assembly namespace


Render your control:

 <controls:ImageButton Text="Twitter" BackgroundColor="#01abdf" TextColor="#ffffff" HeightRequest="75" WidthRequest="175" Image="icon_twitter" Orientation="ImageToLeft"  ImageHeightRequest="50" ImageWidthRequest="50" />

Or from your codebehind:

var button = new ImageButton() {
            ImageHeightRequest = 50,
            ImageWidthRequest = 50,
            Orientation = ImageOrientation.ImageToLeft,
            Source = "icon_twitter.png",
            Text = "Twitter"
stacker.Children.Add (button);

Using the Services




    var device = Resolver.Resolve<IDevice>();
    device.Display; //display information
    device.Battery; //battery information


    var device = Resolver.Resolve<IDevice>();
    // not all devices have phone service, f.e. iPod and Android tablets
    // so we need to check if phone service is available
    if (device.PhoneService != null)
        device.PhoneService.DialNumber("+1 (855) 926-2746");

Initializing the Services

Do this before using the services

Step 1:

  • iOS => Make sure your AppDelegate inherits from XFormsApplicationDelegate

  • Android => MainActivity inherits from XFormsApplicationDroid

  • Windows Phone => Add this line to your App.cs var app = new XFormsAppWP(); app.Init(this);

Step 2: Initialize the container in your app startup code.

    var container = new SimpleContainer ();
    container.Register<IDevice> (t => AppleDevice.CurrentDevice);
    container.Register<IDisplay> (t => t.Resolve<IDevice> ().Display);
    container.Register<INetwork>(t=> t.Resolve<IDevice>().Network);

    Resolver.SetResolver (container.GetResolver ());

For more info on initialization go to the Labs Wiki

Build the project

To develop on this project, just clone the project to your computer, package restore is enable so build the solution first, if you get any errors try to build each project independently .


Main Packages:


  • To be updated...


Other Project Contributions:

  • Xamarin.Mobile


Everbody is welcome to contribute with any kind of controls or features at this time.

Twitter hashtag : #xflabs


XLabs Chat room online on Jabbr


License Apache 2.0 more about that in the LICENSE file.

You can’t perform that action at this time.