Question: I have just started working in Xamarin and am writing an App targeting iOS and Android. I'm trying to keep pretty much all of my UI design in the common library between them and am starting to find the lines a bit blurred. My current requirement is to disable the auto-capitalisation on the 'Entry' tag object in XAML. Is this something that can be done by markup? I cannot find any property that would support this behaviour. If not, what should I do instead?

Answer: 
If you plan to use this keyboard in a number of pages you will want to add the following code to your App.xaml's `ResourceDictionary`. If you want to use it in multiple places but only in a single `ContentPage` you will want to add it to the `ContentPage`'s `ResourceDictionary`. Otherwise you can add it directly to your `Entry`.

Also see [here](https://developer.xamarin.com/recipes/cross-platform/xamarin-forms/controls/choose-keyboard-for-entry/#Specifying_additional_keyboard_options) for available `KeyboardFlag` values. I am just using `None` below.

If adding to a `ResourceDictionary`:

```
<ContentPage.Resources>
  <ResourceDictionary>
    <Keyboard x:Key="NoCapitalizationKeyboard"
              x:FactoryMethod="Create">
      <x:Arguments>
        <KeyboardFlags>None</KeyboardFlags>
      </x:Arguments>
    </Keyboard>
  </ResourceDictionary>
</ContentPage.Resources>

<Entry Keyboard="{StaticResource NoCapitalizationKeyboard}" />

```

Or directly to an `Entry`:

```
<Entry>
  <Entry.Keyboard>
    <Keyboard x:FactoryMethod="Create">
      <x:Arguments>
        <KeyboardFlags>None</KeyboardFlags>
      </x:Arguments>
    </Keyboard>
  </Entry.Keyboard>
</Entry>

```
There's a workaround to use entry without capitalization, such as a "username". For this you can simply use 

```html
<Entry Keyboard="Email" Placeholder="Username"/>

```

Finally you'll get a non-autocapitalization entry and also you may use it as a email text if needed.