入力
.NET マルチプラットフォーム アプリ UI (.NET MAUI) Entry を使用すると、1 行のテキストを入力および編集できます。 さらに、 は Entry パスワード フィールドとして使用できます。
Entry は次の特性を定義します。
CharacterSpacing
型double
の は、入力したテキスト内の文字間の間隔を設定します。ClearButtonVisibility
型ClearButtonVisibility
の は、クリア ボタンを表示するかどうかを制御します。これにより、ユーザーはテキストをクリアできます。 このプロパティの既定値は、クリア ボタンが表示されないようにします。CursorPosition
型int
の は、エントリ内でのカーソルの位置を定義します。FontAttributes
の型FontAttributes
で、テキスト のスタイルを決定します。FontAutoScalingEnabled
型bool
の は、オペレーティング システムで設定されたスケーリング設定をテキストに反映するかどうかを定義します。 このプロパティの既定値はtrue
です。FontFamily
型string
の は、フォント ファミリを定義します。FontSize
型double
の は、フォント サイズを定義します。Keyboard
型Keyboard
の 。 は、テキストを入力するときに表示される仮想キーボードを指定します。HorizontalTextAlignment
型TextAlignment
の は、テキストの水平方向の配置を定義します。IsPassword
型bool
の は、入力されたテキストを視覚的に隠す必要があるかどうかを指定します。IsTextPredictionEnabled
型bool
の では、テキスト予測と自動テキスト修正を有効にするかどうかを制御します。Placeholder
型string
の は、コントロールが空のときに表示されるテキストを定義します。PlaceholderColor
型 Colorの は、プレースホルダー テキストの色を定義します。ReturnCommand
型ICommand
の は、戻りキーが押されたときに実行されるコマンドを定義します。ReturnCommandParameter
型object
の は、 のパラメーターをReturnCommand
指定します。ReturnType
型ReturnType
の 。 は、戻りボタンの外観を指定します。SelectionLength
型int
の は、エントリ内で選択したテキストの長さを表します。Text
型string
の は、エントリに入力されたテキストを定義します。TextColor
型 Colorの は、入力したテキストの色を定義します。VerticalTextAlignment
型TextAlignment
の は、テキストの垂直方向の配置を定義します。
これらのプロパティは、BindableProperty オブジェクトが基になっています。つまり、これらは、データ バインディングの対象にすることができ、スタイルを設定できます。
さらに、 Entry は イベントを Completed
定義します。これは、ユーザーが 戻りキーを使用して 内のテキストを Entry 最終処理するときに発生します。
Entry は、 クラスから InputView
派生し、そこから次のプロパティを継承します。
IsReadOnly
型bool
の は、ユーザーがテキストを変更できないようにするかどうかを定義します。 このプロパティの既定値はfalse
です。IsSpellCheckEnabled
の型bool
は、スペル チェックを有効にするかどうかを制御します。MaxLength
型int
の は、入力の最大長を定義します。TextTransform
の型TextTransform
は、入力されたテキストの大文字と小文字を指定します。
これらのプロパティは、BindableProperty オブジェクトが基になっています。つまり、これらは、データ バインディングの対象にすることができ、スタイルを設定できます。
さらに、 InputView
では、内の TextChanged
テキストが変更されたときに発生するイベントを定義します Entry 。 TextChangedEventArgs
イベントに付随TextChanged
する オブジェクトにはNewTextValue
、 プロパティと OldTextValue
プロパティがあり、それぞれ新しいテキストと古いテキストを指定します。
で Entryフォントを指定する方法については、「 フォント」を参照してください。
エントリを作成する
次の例は、 を作成する方法を Entry示しています。
<Entry x:Name="entry"
Placeholder="Enter text"
TextChanged="OnEntryTextChanged"
Completed="OnEntryCompleted" />
これに相当する C# コードを次に示します。
Entry entry = new Entry { Placeholder = "Enter text" };
entry.TextChanged += OnEntryTextChanged;
entry.Completed += OnEntryCompleted;
次のスクリーンショットは、Android での結果 Entry を示しています。
入力されたテキストにアクセスするには、 プロパティを Text
読み取り、 TextChanged
イベントと Completed
イベントによってテキストが変更または完了したことが通知されます。
イベントはTextChanged
、 内Entryのテキストが変更されたときに発生し、 プロパティと TextChangedEventArgs
プロパティを使用して、変更の前後にテキストをOldTextValue
NewTextValue
提供します。
void OnEntryTextChanged(object sender, TextChangedEventArgs e)
{
string oldText = e.OldTextValue;
string newText = e.NewTextValue;
string myText = entry.Text;
}
イベントは Completed
、ユーザーがキーボードの戻りキーを押すか、Windows の Tab キーを押して入力を終了したときに発生します。 イベントのハンドラーは、汎用イベント ハンドラーです。
void OnEntryCompleted(object sender, EventArgs e)
{
string text = ((Entry)sender).Text;
}
イベントがCompleted
発生すると、 プロパティでReturnCommand
指定された がICommand
実行され、 object
プロパティによってReturnCommandParameter
指定された が にReturnCommand
渡されます。
Note
VisualElement継承階層にある Entry クラスにはFocused
、 イベントと Unfocused
イベントもあります。
文字間隔を設定する
プロパティを値に設定CharacterSpacing
することで、 にEntry文字間隔をdouble
適用できます。
<Entry ...
CharacterSpacing="10" />
結果として、 によって Entry 表示されるテキスト内の文字は、デバイスに依存しない単位の間隔 CharacterSpacing
が離れています。
Note
プロパティのCharacterSpacing
値は、 プロパティと Placeholder
プロパティによって表示されるテキストにText
適用されます。
入力長を制限する
プロパティを MaxLength
使用して、 に対して許可される入力長を Entry制限できます。 このプロパティは正の整数に設定する必要があります。
<Entry ...
MaxLength="10" />
MaxLength
プロパティ値 0 は入力が許可されないことを示し、 のint.MaxValue
既定値である の値Entryは、入力できる文字数に有効な制限がないことを示します。
カーソル位置とテキスト選択の長さを設定する
プロパティを CursorPosition
使用して、 プロパティに格納されている文字列に次の文字を挿入する位置を Text
取得または設定できます。
<Entry Text="Cursor position set"
CursorPosition="5" />
プロパティの CursorPosition
既定値は 0 です。これは、 の先頭 Entryにテキストが挿入されることを示します。
さらに、 プロパティを SelectionLength
使用して、 内 Entryのテキスト選択の長さを取得または設定できます。
<Entry Text="Cursor position and selection length set"
CursorPosition="2"
SelectionLength="10" />
プロパティの SelectionLength
既定値は 0 で、テキストが選択されていないことを示します。
クリア ボタンを表示する
プロパティを ClearButtonVisibility
使用すると、 がクリア ボタンを Entry 表示するかどうかを制御できます。これにより、ユーザーはテキストをクリアできます。 このプロパティは、ClearButtonVisibility
列挙メンバーに設定する必要があります。
Never
は、クリア ボタンが表示されないようにすることを示します。 これは、ClearButtonVisibility
プロパティの既定値です。WhileEditing
は、フォーカスとテキストがある状態で、クリア ボタンが に Entry表示されることを示します。
次の例は、 プロパティの設定を示しています。
<Entry Text=".NET MAUI"
ClearButtonVisibility="WhileEditing" />
次のスクリーンショットは、[ Entry クリア] ボタンが有効になっている Android の を示しています。
テキストの変換
ではEntry、 プロパティを列挙体の値に設定TextTransform
することで、 プロパティにText
格納されているテキストの大文字と小文字をTextTransform
変換できます。 この列挙には、次の 4 つの値があります。
None
は、テキストが変換されていないことを示します。Default
は、プラットフォームの既定の動作が使用されることを示します。 これは、TextTransform
プロパティの既定値です。Lowercase
は、テキストが小文字に変換されることを示します。Uppercase
は、テキストが大文字に変換されることを示します。
次の例は、テキストを大文字に変換する方法を示しています。
<Entry Text="This text will be displayed in uppercase."
TextTransform="Uppercase" />
テキストエントリを隠す
Entry は、 に IsPassword
設定されている場合に、入力されたテキストを視覚的に隠す プロパティを true
提供します。
<Entry IsPassword="true" />
次のスクリーンショットは、 Entry 入力が隠されている を示しています。
キーボードをカスタマイズする
ユーザーが と対話 Entry するときに表示される仮想キーボードは、 プロパティを Keyboard
使用してプログラムによって、 クラスの次のいずれかのプロパティに Keyboard
設定できます。
Chat
- 絵文字が使えるテキスト メッセージや場所に使います。Default
- 既定のキーボード。Email
- 電子メール アドレスを入力するときに使用します。Numeric
- 数値を入力するときに使用します。Plain
-KeyboardFlags
を指定しないで、テキストを入力するときに使用します。Telephone
- 電話番号を入力するときに使用します。Text
- テキストを入力するときに使用します。Url
– ファイル パス & Web アドレスの入力に使用されます。
次の例は、 プロパティの設定を Keyboard
示しています。
<Entry Keyboard="Chat" />
Keyboard
クラスには、大文字の設定、スペルチェック、および単語補完候補の動作を指定することで、キーボードをカスタマイズするために使用できる Create
ファクトリ メソッドもあります。 KeyboardFlags
列挙値がメソッドへの引数として指定され、カスタマイズされた Keyboard
が返されます。 KeyboardFlags
列挙体には次の値が含まれます。
None
- キーボードに機能は追加されません。CapitalizeSentence
- 入力された各文の最初の単語の最初の文字が自動的に大文字になることを示します。Spellcheck
- 入力したテキストに対してスペル チェックが実行されることを示します。Suggestions
- 入力したテキストに対して単語補完が提供されることを示します。CapitalizeWord
- 各単語の最初の文字が自動的に大文字になることを示します。CapitalizeCharacter
- すべての文字が自動的に大文字になることを示します。CapitalizeNone
- 大文字の自動設定を行わないことを示します。All
- 入力したテキストに対して、スペルチェック、単語補完、および文への大文字の設定が行われることを示します。
次の XAML コード例は、既定の Keyboard
をカスタマイズして、単語補完を提供し、入力したすべての文字を大文字に設定する方法を示しています。
<Entry Placeholder="Enter text here">
<Entry.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Entry.Keyboard>
</Entry>
これに相当する C# コードを次に示します。
Entry entry = new Entry { Placeholder = "Enter text here" };
entry.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
戻りキーをカスタマイズする
にフォーカスがあるときに表示される Entry 仮想キーボードの戻りキーの外観は、 プロパティを ReturnType
列挙体の ReturnType
値に設定することでカスタマイズできます。
Default
– 特定のリターン キーが必要なく、プラットフォームの既定値が使用されることを示します。Done
– "完了" の戻りキーを示します。Go
– "Go" 戻りキーを示します。Next
– "Next" 戻りキーを示します。Search
– "検索" 戻りキーを示します。Send
– "送信" 戻りキーを示します。
次の XAML の例は、戻り値キーを設定する方法を示しています。
<Entry ReturnType="Send" />
Note
リターン キーの正確な外観は、プラットフォームによって異なります。 iOS では、戻りキーはテキストベースのボタンです。 ただし、Android と Windows では、戻りキーはアイコンベースのボタンです。
戻りキーが押されると、イベントがCompleted
発生し、 プロパティでReturnCommand
指定されたがICommand
実行されます。 さらに、 プロパティでReturnCommandParameter
指定されたは、object
パラメーターとして にICommand
渡されます。 コマンドの詳細については、「 Commanding」を参照してください。
スペル チェックを有効または無効にする
プロパティは IsSpellCheckEnabled
、スペル チェックを有効にするかどうかを制御します。 既定では、 プロパティは に true
設定されています。 ユーザーがテキストを入力すると、スペル ミスが示されます。
ただし、ユーザー名の入力など、一部のテキスト入力シナリオでは、スペル チェックは否定的なエクスペリエンスを提供し、 プロパティを IsSpellCheckEnabled
に設定して無効にする false
必要があります。
<Entry ... IsSpellCheckEnabled="false" />
Note
プロパティが IsSpellCheckEnabled
に false
設定されていて、カスタム キーボードが使用されていない場合、ネイティブスペル チェックは無効になります。 ただし、 などのKeyboard.Chat
スペル チェックを無効にする が設定されている場合Keyboard
、 IsSpellCheckEnabled
プロパティは無視されます。 したがって、 プロパティを使用して、明示的に無効にする の Keyboard
スペル チェックを有効にすることはできません。
テキスト予測を有効または無効にする
プロパティは IsTextPredictionEnabled
、テキスト予測と自動テキスト修正を有効にするかどうかを制御します。 既定では、 プロパティは に true
設定されています。 ユーザーがテキストを入力すると、単語の予測が表示されます。
ただし、ユーザー名の入力、テキスト予測、自動テキスト修正などの一部のテキスト入力シナリオでは、負のエクスペリエンスが提供され、 プロパティを IsTextPredictionEnabled
に設定して無効にする false
必要があります。
<Entry ... IsTextPredictionEnabled="false" />
Note
プロパティが IsTextPredictionEnabled
に false
設定されていて、カスタム キーボードが使用されていない場合、テキスト予測と自動テキスト修正は無効になります。 ただし、テキスト予測を Keyboard
無効にする が設定されている場合、 IsTextPredictionEnabled
プロパティは無視されます。 したがって、 プロパティを使用して、明示的に無効にする の Keyboard
テキスト予測を有効にすることはできません。
テキスト入力を禁止する
ユーザーは、 プロパティtrue
を に設定することで、 内のEntryテキストをIsReadOnly
変更できないようにすることができます。
<Entry Text="User input won't be accepted."
IsReadOnly="true" />