.NET MAUI動作

.NET Multi-platform App UI (.NET MAUI) のビヘイビアを使用すると、ユーザー インターフェイス コントロールをサブクラス化しなくても、そのコントロールに機能を追加できます。 代わりに、この機能は動作クラスに実装され、コントロール自体の一部であるかのようにコントロールにアタッチされます。

動作の詳細については、.NET MAUIドキュメントを参照してください。

.NET MAUI Community Toolkit の動作

.NET MAUI Community Toolkit は、開発者の生活を容易にするために、事前に構築された再利用可能な動作のコレクションを提供します。 ツールキットによって提供される動作を次に示します。

Behavior Description
AnimationBehavior AnimationBehaviorは、アタッチされているBehaviorをアニメーション化する機能を提供するVisualElementです。
CharactersValidationBehavior CharactersValidationBehaviorは、ユーザーが指定されたパラメーターに応じてテキスト入力を検証できるようにするBehaviorです。
EmailValidationBehavior EmailValidationBehaviorは、ユーザーがテキスト入力が有効な電子メール アドレスであるかどうかを判断できるBehaviorです。
EventToCommandBehavior EventToCommandBehaviorは、ユーザーがEventを通じてCommandを呼び出せるbehaviorです。 コマンドをサポートするように設計されていないコントロールによって公開されるイベントにコマンドを関連付けるために設計されています。 これにより、コントロール上の任意のイベントを Command にマップできます。
IconTintColorBehavior IconTintColorBehaviorは、イメージの濃淡を設定できるbehaviorです。
ImageTouchBehavior ImageTouchBehaviorは、タッチ、マウス クリック、ホバー イベントに基づいてTouchBehavior要素をカスタマイズする機能を提供することで、Imageを拡張します。
MaskedBehavior MaskedBehaviorは、ユーザーがデータ入力の入力マスクを定義できるBehaviorです。
MaxLengthReachedBehavior MaxLengthReachedBehaviorは、ユーザーがInputViewで許可されている最大長に達したときにユーザーがアクションをトリガーできるようにする動作です。
MultiValidationBehavior MultiValidationBehaviorは、ユーザーが複数の検証コントロールを組み合わせて、指定されたパラメーターに応じてテキスト入力を検証できるようにするBehaviorです。
NumericValidationBehavior NumericValidationBehaviorは、ユーザーがテキスト入力が有効な数値であるかどうかを判断できるBehaviorです。
ProgressBarAnimationBehavior ProgressBarAnimationBehaviorは、現在の Progress 値から指定された値までのProgressBarを時間の経過と同時にアニメーション化します。
RequiredStringValidationBehavior RequiredStringValidationBehaviorは、ユーザーがテキスト入力が特定のテキストと等しいかどうかを判断できるBehaviorです。
SelectAllTextBehavior SelectAllTextBehaviorは、フォーカスされたときにInputViewEntryEditorなど)内のすべてのテキストを選択できるBehaviorです。
SetFocusOnEntryCompletedBehavior SetFocusOnEntryCompletedBehaviorは、Behaviorが完了したときに指定したVisualElementにフォーカスを与えるEntryです。
StatusBarBehavior StatusBarBehaviorは、デバイスのステータス バーの色とスタイルをカスタマイズできるBehaviorです。
TextValidationBehavior TextValidationBehaviorは、ユーザーが指定されたパラメーターに応じて特定のテキストを検証できるようにするBehaviorです。
TouchBehavior TouchBehaviorは、タッチ、マウス クリック、ホバー イベントに基づいて、任意のBehaviorと対話する機能を提供するVisualElementです。
UriValidationBehavior UriValidationBehaviorは、テキスト入力が有効な URI であるかどうかをユーザーが判断できるBehaviorです。
UserStoppedTypingBehavior UserStoppedTypingBehaviorは、ユーザーがEntryデータ入力を停止したときにユーザーがアクションをトリガーできるようにする動作です。

.NET MAUI Community Toolkit の動作を作成する

.NET MAUI Community Toolkit には、BaseBehavior<T>の管理に関するいくつかのボイラー プレート要件を実行する Behavior クラスが用意されています。これにより、開発者は実装の目的に集中できます。 .NET MAUI Community Toolkit の動作を実装するには、BaseBehavior<T> クラスから派生するクラスを作成し、必要に応じて、OnAttachedToOnDetachingFrom、または OnViewPropertyChanged メソッドをオーバーライドします。

次の例は、NumericValidationBehavior クラスを示しています。このクラスでは、Entryでない場合に、ユーザーがdouble コントロールに入力した値が赤で強調表示されます。

public class NumericValidationBehavior : Behavior<Entry>
{
    void OnViewPropertyChanged(Entry sender, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == nameof(Entry.Text))
        {
            bool isValid = double.TryParse(sender.Text, out double _);
            sender.TextColor = isValid ? Colors.Black : Colors.Red;
        }
    }
}

この例では、 NumericValidationBehavior クラスは BaseBehavior<T> クラスから派生します。ここで、 TEntryです。 OnAttachedToメソッドとOnDetachingFrom メソッドは基本実装内で処理されるため、唯一の要件はOnViewPropertyChangedをオーバーライドすることです。 OnViewPropertyChanged メソッドは、ViewEntry プロパティでプロパティが変更されるたびに呼び出されます。 このOnViewPropertyChangedは、Entryに入力された値を解析し、値がTextColorでない場合にdouble プロパティを赤に設定する動作のコア機能を提供します。