single.php

C# WinUI3で[AutoSuggestBox]の入力時に日本語入力に変更する方法

C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで[AutoSuggestBox]コントロールに入力する際にIMEを[ひらがな]入力に変更する方法です。

既定値は英字入力

[AutoSuggestBox]コントロールは、キーワードから用意した候補リストを表示してユーザーに選択させる表示が可能です。

例えば、こんな感じでテキストボックスに入力した文字に該当する一覧を表示して、ユーザーに選択する機能がアプリに追加できます。

当然ですが、初期値は英数字入力になっています。

アプリによっては、最初から日本語入力になって欲しい場合があります。

フォーカス時に日本語入力に変更

WinFormなどには[TextBox]コントロールに[ImeMode]プロパティがあってIMEの挙動を変更できましたが、WinUI3の[TextBox]コントロール([AutoSuggestBox]の入力部分は[TextBox]コントロール)には、実装されていません。

WinUI3の場合は、[InputScope]で変更が可能です。

具体的には[GotFocus]イベントを追加して、イベント内でInputScopeを変更します。

private void AutoSuggestBox_GotFocus(object sender, RoutedEventArgs e)
{
    InputScope inputScope = new InputScope();
    InputScopeName scopeName = new InputScopeName();
    scopeName.NameValue = InputScopeNameValue.Hiragana;
    inputScope.Names.Add(scopeName);
    ((TextBox)e.OriginalSource).InputScope = inputScope;
}

今回は[InputScopeNameValue.Hiragana]を設定して日本語入力にしています。

InputScopeNameValue 列挙値]には、日付やパスワードなど様々な値が用意されています。

IMEを[半角英数字]に変更するには[InputScopeNameValue.Password]が利用できました。

まとめ

今回はWinUI3プロジェクトで[AutoSuggestBox]コントロールに入力する際に[ひらがな]入力に変更する方法について紹介しました。

[AutoSuggestBox]コントロールの入力する部分は[TextBox]コントロールが利用されているため[InputScope]プロパティを利用して入力時のIMEを制御できます。

WinUI 3で[AutoSuggestBox]コントロールの入力時に日本語にしたい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です