Xamarin.Forms Entry のチュートリアル
このチュートリアルを試行する前に、以下を正常に完了しておく必要があります。
- 初めての Xamarin.Forms アプリのビルドに関するクイックスタート。
- StackLayout のチュートリアル。
このチュートリアルでは、次の作業を行う方法について説明します。
- XAML で Xamarin.Forms
Entry
を作成する。 Entry
の変更中にテキストに応答する。Entry
の動作をカスタマイズする。
Entry
の動作をカスタマイズする方法を示す簡単なアプリケーションを作成するには、Visual Studio 2019 または Visual Studio for Mac を使用します。 次のスクリーンショットは、最終的なアプリケーションです。
また、Xamarin.Forms 向け XAML ホット リロードを使用して、アプリケーションをリビルドせずに UI の変更を確認することもできます。
エントリを作成する
このチュートリアルを完了するには、 .NET によるモバイル開発ワークロードがインストールされた、Visual Studio 2019 (最新リリース) が必要です。 さらに、iOS でチュートリアル アプリケーションを構築するには、ペアリング済みの Mac が必要になります。 Xamarin プラットフォームのインストールについては、「Xamarin のインストール」を参照してください。 Mac ビルド ホストへの Visual Studio 2019 の接続については、「Xamarin.iOS 開発のために Mac とペアリングする」を参照してください。
Visual Studio を起動し、EntryTutorial という名前の新しい空の Xamarin.Forms アプリを作成します。
重要
このチュートリアルの C# スニペットと XAML スニペットでは、EntryTutorial という名前のソリューションが必要です。 別の名前を使用すると、コードをこのチュートリアルからソリューションにコピーするときに、ビルド エラーが発生します。
作成される .NET Standard ライブラリの詳細については、Xamarin.Forms クイック スタート Deep Dive の「Xamarin.Forms アプリケーションの構造」を参照してください。
ソリューション エクスプローラーの EntryTutorial プロジェクトで、[MainPage.xaml] をダブルクリックして開きます。 次に、 [MainPage.xaml] のテンプレート コードをすべて削除し、次のコードに置き換えます。
<?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="EntryTutorial.MainPage"> <StackLayout Margin="20,35,20,20"> <Entry Placeholder="Enter text" /> </StackLayout> </ContentPage>
このコードでは、
StackLayout
の中のEntry
から構成されるページのユーザー インターフェイスを宣言によって定義します。Entry.Placeholder
プロパティは、Entry
が最初に表示されたときに表示されるプレースホルダー テキストを指定します。Visual Studio ツール バーで、 [開始] ボタン ([再生] ボタンに似た三角形のボタン) を押し、選択したリモート iOS シミュレーターまたは Android エミュレーター内でアプリケーションを起動します。
Visual Studio で、アプリケーションを停止します。
テキストの変更に応答する
[MainPage.xaml] で、
TextChanged
イベントとCompleted
イベントのハンドラーを設定するようにEntry
宣言を変更します。<Entry Placeholder="Enter text" TextChanged="OnEntryTextChanged" Completed="OnEntryCompleted" />
このコードは、
TextChanged
イベントをOnEntryTextChanged
という名前のイベント ハンドラーに設定し、Completed
イベントをOnEntryCompleted
という名前のイベント ハンドラーに設定します。 どちらのイベント ハンドラーも次の手順で作成されます。ソリューション エクスプローラーの EntryTutorial プロジェクトで [MainPage.xaml] を展開し、[MainPage.xaml.cs] をダブルクリックして開きます。 次に、 [MainPage.xaml.cs] で、
OnEntryTextChanged
とOnEntryCompleted
のイベント ハンドラーをクラスに追加します。void OnEntryTextChanged(object sender, TextChangedEventArgs e) { string oldText = e.OldTextValue; string newText = e.NewTextValue; } void OnEntryCompleted(object sender, EventArgs e) { string text = ((Entry)sender).Text; }
Entry
のテキストが変更されると、OnEntryTextChanged
メソッドが実行されます。sender
引数は、TextChanged
イベントの発生を担当するEntry
オブジェクトであり、Entry
オブジェクトへのアクセスに使用できます。TextChangedEventArgs
引数は、テキストの変更前と変更後の古いテキスト値と新しいテキスト値を提供します。Return キーで
Entry
のテキストを確定すると、OnEntryCompleted
メソッドが実行されます。sender
引数は、TextChanged
イベントの発生を担当するEntry
オブジェクトであり、Entry
オブジェクトへのアクセスに使用できます。Visual Studio ツール バーで、 [開始] ボタン ([再生] ボタンに似た三角形のボタン) を押し、選択したリモート iOS シミュレーターまたは Android エミュレーター内でアプリケーションを起動します。
2 つのイベント ハンドラーにブレークポイントを設定し、
Entry
にテキストを入力して、TextChanged
とCompleted
のイベントの発生を確認します。Entry
イベントの詳細については、「Xamarin.Forms Entry」ガイドの「Events and Interactivity」(イベントとインタラクティビティ) をご覧ください。
動作をカスタマイズする
[MainPage.xaml] で、
Entry
宣言を変更して、その動作をカスタマイズします。<Entry Placeholder="Enter password" MaxLength="15" IsSpellCheckEnabled="false" IsTextPredictionEnabled="false" IsPassword="true" />
このコードでは、
Entry
の動作をカスタマイズするプロパティを設定します。MaxLength
プロパティでは、Entry
で許可されている入力の長さが制限され、IsSpellCheckEnabled
プロパティは、スペルチェックを無効にするためにfalse
に設定されます。 同様に、IsTextPredictionEnabled
プロパティは、予測入力と自動予測入力を無効にするためにfalse
に設定されます。 さらに、IsPassword
プロパティでは、入力された文字が確実にパスワード文字 (黒丸) でマスクされるようにします。Note
パスワードの入力などの一部のテキスト入力シナリオの場合、スペルチェックと予測入力でネガティブなエクスペリエンスが提供されるため、これらは無効にする必要があります。
アプリケーションがまだ実行されている場合は、変更内容をファイルに保存すると、アプリケーションのユーザー インターフェイスがシミュレーターまたはエミュレーターで自動的に更新されます。 もしくは、Visual Studio ツール バーで、 [開始] ボタン ([再生] ボタンに似た三角形のボタン) を押し、選択したリモート iOS シミュレーターまたは Android エミュレーター内でアプリケーションを起動します。 テキストを
Entry
に入力し、各文字がパスワード マスク文字で置き換えられており、入力できる文字の最大数が 15 であることを確認します。Visual Studio で、アプリケーションを停止します。
Entry
動作のカスタマイズの詳細については、「Xamarin.Forms Entry」ガイドを参照してください。
おめでとうございます。
これでこのチュートリアルは完了です。ここでは以下の方法を学習しました。
- XAML で Xamarin.Forms
Entry
を作成する。 Entry
の変更中にテキストに応答する。Entry
の動作をカスタマイズする。
次の手順
Xamarin.Forms を使用してモバイル アプリケーションを作成する基本についてさらに学習する場合は、Editor のチュートリアルに進んでください。
関連リンク
このセクションに問題がある場合 このセクションを改善できるよう、フィードバックをお送りください。