On controls that don't have font properties you need to use custom renderers for each platform. Unfortunately no other way unless Xamarin Forms exposes the property.
For the picker on WinPhone for example, in the CustomRenderer
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
switch (e.PropertyName)
{
case "Renderer":
((ListPicker)((System.Windows.Controls.Grid)this.Control).Children[0]).FullModeItemTemplate = (System.Windows.DataTemplate)App.Current.Resources["PickerItemTemplate"];
((ListPicker)((System.Windows.Controls.Grid)this.Control).Children[0]).FullModeItemTemplate = (System.Windows.DataTemplate)App.Current.Resources["ListItemTemplate"];
break;
}
}
With these two resources
<DataTemplate x:Key="PickerItemTemplate">
<StackPanel MinWidth="1000">
<TextBlock Text="{Binding Data}" Opacity="{Binding Opacity}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="ListItemTemplate">
<StackPanel Margin="0,15,0,15">
<TextBlock Text="{Binding Data}" FontSize="22" TextWrapping="Wrap"></TextBlock>
</StackPanel>
</DataTemplate>