Xamarin.Forms: How can I load ResourceDictionary from another file?

Merged Dictionaries aren't supported in Xamarin Forms XAML below 2.1.0

The only way you can do it, is to put it in another page and then load it up in code behind and reference it via DynamicResource instead of StaticResource.

I explain this more here: http://www.xamarinhelp.com/styling-uiux-day-11/

However as of 2.1.0-pre1 (released this week), you can now do templating, which is another way to do this. Jason Smith has blogged about it: http://xfcomplete.net/general/2016/01/20/control-templates/

Update: As of 2.3.0 you can do a Merged Dictionary with an attribute called MergedWith.

Create a new XAML File

<?xml version="1.0" encoding="utf-8" ?>
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
                    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                    x:Class="UIDemo.Style.NewStyle">
    <Style TargetType="Label">
        <Setter Property="TextColor" Value="Blue" />
    </Style>
</ResourceDictionary>

Now in your ContentPage use the MergedWith attribute on your ResourceDictionary.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:theme="clr-namespace:UIDemo.Style"
             x:Class="UIDemo.MainPage">
    <ContentPage.Resources>
        <ResourceDictionary MergedWith="theme:NewStyle" />
    </ContentPage.Resources>
    <Grid>
        <Label Text="Hello" />
    </Grid>
</ContentPage>

As of 2.3.0 can officially merge Resource dictionaries in xaml observe the following example

BlueTheme.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
                    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                    x:Class="UI.Themes.BlueTheme">
    <Style TargetType="Label">
        <Setter Property="TextColor" Value="Blue" />
    </Style>
</ResourceDictionary>

App.xaml

<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:theme="clr-namespace:UI.Themes"
             x:Class="UI.App">
    <Application.Resources>
        <ResourceDictionary MergedWith="themes:BlueTheme" />
    </Application.Resources>
    <Label Text="Hello" />
</Application>