XamTextEditor では、KeyDown などのイベントをハンドルしているのは XamTextEditor 内部の TextBox となっております。このため、KeyDown イベントなどを登録するには、内部の TextBox を取り出した上で、イベント登録を行います。

実装例:

private void XamTextEditor1_EditModeStarted(object sender, Infragistics.Windows.Editors.Events.EditModeStartedEventArgs e)
{
    var xamTextEditor = sender as XamTextEditor;
    if (xamTextEditor1 != null)
    {
        var innerEditor = Utilities.GetDescendantFromName(xamTextEditor as DependencyObject, "PART_FocusSite") as TextBox;
        innerEditor.KeyDown += (_sender, _e) =>
        {
            //...何らかの処理を加える...
        };
    }
}

なお、上記コードに含まれる ”PART_FocusSite” に関しては、XamTextEditor の内部に含まれる TextBox の名前となります。公開 API ではないため、命名などが予告なしに変更される可能性がございます。弊社製品のバージョンアップを行われた際には、ご自身で TextBox が取得できていることをご確認下さい。

Tagged:

製品について

Ultimate UI for WPF