TextBoxのPreviewMouseDownイベント内でShowDialog()をすると、TextBoxをクリックしてもカーソルが合わない
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;
}
}
}