You can do it with Xamarin Themes has a clear tutorial on how to do it.
Then You can use the following to change themes
void OnPickerSelectionChanged(object sender, EventArgs e)
{
Picker picker = sender as Picker;
Theme theme = (Theme)picker.SelectedItem;
ICollection<ResourceDictionary> mergedDictionaries = Application.Current.Resources.MergedDictionaries;
if (mergedDictionaries != null)
{
mergedDictionaries.Clear();
switch (theme)
{
case Theme.Dark:
mergedDictionaries.Add(new DarkTheme());
break;
case Theme.Light:
default:
mergedDictionaries.Add(new LightTheme());
break;
}
}
}
UPDATE:
If you want to change the selection on android you'll have to do it in your android styles.xml file, to change it dynamically you'll have to write an affect :
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<color name="DarkYellow">#FF00FF</color>
<style name="Theme.MyHoloLight" parent="android:Theme.Holo.Light">
<item name="android:colorPressedHighlight">@color/DarkYellow</item>
<item name="android:colorLongPressedHighlight">@color/DarkYellow</item>
<item name="android:colorFocusedHighlight">@color/DarkYellow</item>
<item name="android:colorActivatedHighlight">@color/DarkYellow</item>
<item name="android:activatedBackgroundIndicator">@color/DarkYellow</item>
</style>
</resources>