Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to disable Auto Capitalisation on Xamarin Forms 'Entry' XAML

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?

like image 798
The Senator Avatar asked Oct 11 '16 17:10

The Senator


2 Answers

A bit late but there is now a simple way to get a plain keyboard, with no flags:

<Entry
    FontSize="Small"
    Keyboard="Plain"
    Text="Text"/>

Documentation here.

like image 83
alexgavru Avatar answered Sep 23 '22 08:09

alexgavru


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 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>
like image 43
hvaughan3 Avatar answered Sep 26 '22 08:09

hvaughan3