いつもお世話になっております.

WPFでプログラミング用のテキストエディタを実装していて,Ctrl+Dで文を複製する機能を作ろうとしていたのですが,文が複製される際に改行が入らなかったのです.
調べていくうちに,Ctrl+Enterでは改行できないことがわかりました.(Ctrl+Dコマンドを実行際に複製する文をTextBoxに送っているのでコマンドが実行されている間はCtrlキーが押されている)
AcceptsReturnプロパティはTrueに設定しているので,Ctrlキーが押されていなければちゃんと改行ができます.

Ctrl+Enterで改行ができないなら,InputManagerでEnterキーを送っても改行が入力されないことはわかるのですが,TextCompositionManagerでTextを送る際に”\r\n”を送っても改行が入力されないのが,よくわかりません.

どのようにすればCtrlキーが押された状態で改行を入力できるようになるのでしょうか.

開発環境はWindows 10(1803),
VisualStudio 2017 ,
.NET Framework 4.5です.

以下ソースコードです

class Editor : TextBox {
        //コンストラクタやほかの処理は省略

        private void SendText(string text)
        {
                TextCompositionManager.StartComposition(new 
                TextComposition(InputManager.Current, this, text));
        }

        private void SendKey(Key key)
        {
                PresentationSource presentationSource = 
PresentationSource.FromVisual(this);
                InputManager.Current.ProcessInput(new 
                KeyEventArgs(Keyboard.PrimaryDevice, presentationSource, 100, key)
                {
                        RoutedEvent = PreviewKeyDownEvent
                });
        }

        public void Duplicate() //Ctrl+D
        {
                int current_line = GetCurrentLineNumber();
                int current_start = SelectionStart;
                string duptext = GetLineText(current_line);
                SendText(Environment.NewLine + duptext);
                SelectionStart = current_start;
        }
}

InputManagerやTextCompositionManagerを採用した理由については,将来RichTextBoxにコードを移植した際に,Textプロパティを直接書き換える方法使った場合,Rtf値がリセットされて色情報が消えてしまうからです.
Ctrl+Dを押したときのイベント捕捉はXAMLのKeyBindingsで行っています.

よろしくお願いします.