Xamarin.Forms Application Fundamentals


Tips to incorporate accessible features (like supporting screen-reading tools) with Xamarin.Forms.

App Class

The Application class is the starting point for Xamarin.Forms – every app needs to implement a subclass App to set the initial page. It also provides the Properties collection for simple data storage. It can be defined in either C# or XAML.

App Lifecycle

The Application class OnStart, OnSleep, and OnResume methods, as well as modal navigation events, let you handle application lifecycle events with custom code.


User interface controls can be easily extended without subclassing by using behaviors to add functionality.

Custom Renderers

Custom Renders let developers 'override' the default rendering of Xamarin.Forms controls to customize their appearance and behavior on each platform (using native SDKs if desired).

Data Binding

Data binding links the properties of two objects, allowing changes in one property to be automatically reflected in the other property. Data binding is an integral part of the Model-View-ViewModel (MVVM) application architecture.

Dependency Service

The DependencyService provides a simple locator so that you can code to interfaces in your shared code and provide platform-specific implementations that are automatically resolved, making it easy to reference platform-specific functionality in Xamarin.Forms.


Effects allow the native controls on each platform to be customized, and are typically used for small styling changes.


File handling with Xamarin.Forms can be achieved using code in a .NET Standard library, or by using embedded resources.


The Xamarin.Forms GestureRecognizer class supports tap, pinch, and pan gestures on user interface controls.


The built-in .NET localization framework can be used to build cross-platform multilingual applications with Xamarin.Forms.

Local Databases

Xamarin.Forms supports database-driven applications using the SQLite database engine, which makes it possible to load and save objects in shared code.

Messaging Center

Xamarin.Forms MessagingCenter enables view models and other components to communicate with without having to know anything about each other besides a simple Message contract.

Xamarin.Forms provides a number of different page navigation experiences, depending upon the Page type being used.


Xamarin.Forms Shell is a container for applications, that provides fundamental UI features that most applications require, leaving you to focus on the application's core workload.


Control templates provide the ability to easily theme and re-theme application pages at runtime, while data templates provide the ability to define the presentation of data on supported controls.


Update controls by responding to property changes and events in XAML.