2016-10-11 2 views
1

私はXamarinで作業を始め、iOSとAndroidをターゲットにしたアプリケーションを作成し始めました。私はそれらの間の共通のライブラリで私のUIデザインをほぼすべて維持しようとしており、ラインが少しぼやけているのを見始めています。私の現在の要件は、XAMLの 'Entry'タグオブジェクトの自動資本化を無効にすることです。これはマークアップで行うことができるものですか?私はこの振る舞いを支持する財産を見つけることができません。そうでない場合は、代わりに何をすべきですか?Xamarinフォームのエントリの自動資本化を無効にする方法はありますかXAML

+0

を私は新しい 'Entry'を作成し、そこに入力すると、最初の文字が大文字にされていません。 'Entry'に特定の' Entry.Keyboard'か 'KeyboardFlag'を指定していますか?直接または多分スタイル/基本クラスのどちらかを使用しますか?次は、自動的に大文字にするエントリを強制する必要がありますが、私はそのフラグなしではなかったと思った: ' xamlin.com/recipes/cross-platform/xamarin-forms/controls/choose-keyboard-for-entry /#Sentence_capitalization)) – hvaughan3

+0

xamlを使用してEntryインスタンスを作成しています。 Text = "{Binding MyText}">が表示されます。私はプロパティEntry.Keyboardにアクセスできますが、この動作を変更する明示的なコンテンツは表示されません。私はこれをiOSシミュレータで実行しています。 XAMLからエントリを作成していますか?何のシミュレータを使っていますか? –

+0

iOSシミュレータ(iPhone 4s 8.4)で実行してください。あなたの 'App.xaml'ファイルに定義されている、あるいはあなたの' ContentPage'で定義されているグローバル 'Entry'スタイルをまだ持つことができますか? – hvaughan3

答えて

2

Keyboard="Text" - Defaultキーボードで大文字を入力できます。

さらに、追加のキーボードsettingsを適用することもできます。これにより、提案やその他のものを切り替えることができます。

UITextFieldの場合はEffectをシンプルに作成し、ネイティブiOS APIを使用して必要なフラグ(AutocapitalizationType = UITextAutocapitalizationType.None;)を設定することをおすすめします。

また、目標を達成するためにカスタムレンダラーを作成する方法についてはdocumentationがありますが、効果の導入以来、これは過度の過ちであるようです。

+0

私はキーボードを 'テキスト'に設定しようとしましたが、結果は同じままでした。私はiOSシミュレータを使用していて、毎回最初の文字を大文字にします。私はエフェクトについて読んでいますが、オペレーティングシステムごとにカスタムビューや変更を行う必要がある場合、私の「共有」ビューが私に何をしているのかちょっと混乱していると思います。私はこの世界の私のための初期のこと、ここでは何か根本的なものが欠けていると確信しています。答えのあなたのエフェクト部分は、XAML以外のアプローチを示唆しているようですが、私はそれを誤読していますか? –

1

このキーボードを数字またはページで使用する場合は、App.xamlのResourceDictionaryに次のコードを追加します。複数の場所で使用する場合は、ContentPageを1つだけ使用する場合は、ContentPageResourceDictionaryに追加することをお勧めします。それ以外の場合は、ディレクトリをEntryに追加できます。

また​​値についてはhereを参照してください。私はちょうどNoneを使用しています。

場合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}" /> 

、または直接Entryに:

<Entry> 
    <Entry.Keyboard> 
    <Keyboard x:FactoryMethod="Create"> 
     <x:Arguments> 
     <KeyboardFlags>None</KeyboardFlags> 
     </x:Arguments> 
    </Keyboard> 
    </Entry.Keyboard> 
</Entry> 
関連する問題