WPFにて、TextBoxのPreviewMouseDownイベント内でShowDialog()をすると、TextBoxをクリックしてもカーソルが合わなくなってしまいます。
PreviewMouseDownイベント内でShowDialog()をした後はPreviewMouseUpイベントが発生しないことも確認しました。PreviewMouseDown後はTextBoxの動作が中断されているようです。

私がやりたいことは、TextBox.Focus()を使ってカーソルを合わせるというようなことではなく、PreviewMouseDownイベント内でShowDialog()をした後も通常のようにTextBoxを動作させてカーソルを合わせることです。
つまり、通常のようにとは次のような動作です。
1.TextBoxをクリック
2.PreviewMoseDownイベントが発生し、ダイアログが開く
3.ダイアログを操作しDialogResultを発生させメインウィンドウに返ってくる
4.PreviewMouseUpイベントが発生する
5.TextBoxにカーソルが合う

解決策が分かる方、どうかよろしくお願いいたします。

MainWindow.xaml

<Grid>
    <TextBox Height="30" Width="200" PreviewMouseDown="TextBox_PreviewMouseDown"/>
</Grid>

MainWindow.xaml.cs

namespace Sample
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void TextBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
            new Dialog().ShowDialog();
        }
    }
}

Dialog.xaml

<Grid>
    <Button Click="Button_Click"/>
</Grid>

Dialog.xaml.cs

namespace Sample
{
    public partial class Dialog : Window
    {
        public Dialog()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = true;
        }
    }
}