none
International Feature Pack 2.0のYomiganaWPFTextBoxの動作について RRS feed

  • 質問

  • YomiganaWPFTextBoxコントロールを使ってヨミガナを取得しているのですが、
    YomiganaChangedイベント内でTextCapturedを使っています。

    private void TxtName_YomiganaChanged(object sender, RoutedEventArgs e) {
    vm.Customer.Kana = TxtName.TextCaptured;
    }

    このとき、「重田」と入力後、スペースを入れると フリガナの方が 「シゲタ重田」になってしまう現象がでています。

    原因および回避策みたいなものはあるでしょうか?


    2016年12月28日 9:37

回答

  • 意図的に再変換を行うと再変換の結果がTextCapturedに混ざるので、スペースキーで再変換が走ってるのかも。
    さらにTextCapturedはどの位置で入力したかに関係なく末尾に読み仮名を追加していくので、再変換の漢字が末尾に漢字がついてしまうとか。

    回避としてはSystem.Text.RegularExpressions.Regex(@"[^\s\uFF65-\uFF9F]")でスペースと半角カナ以外を捨てるとか。
    #再変換で半角カタカナに変換した場合はダメだけど


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2016年12月28日 14:43

すべての返信

  • 意図的に再変換を行うと再変換の結果がTextCapturedに混ざるので、スペースキーで再変換が走ってるのかも。
    さらにTextCapturedはどの位置で入力したかに関係なく末尾に読み仮名を追加していくので、再変換の漢字が末尾に漢字がついてしまうとか。

    回避としてはSystem.Text.RegularExpressions.Regex(@"[^\s\uFF65-\uFF9F]")でスペースと半角カナ以外を捨てるとか。
    #再変換で半角カタカナに変換した場合はダメだけど


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2016年12月28日 14:43
  • 回答ありがとうございます!

    いただいた回避策を試してみます。

    ありがとうございました。<m(__)m>

    2017年1月4日 0:55