DataGridをダブルクリックしたときに特定の操作を実行するには、アプリが必要です。スクロールバーがダブルクリックされた場合、アクションは実行しないでください。だから私は、ダブルクリックされているかを確認してみてください:DataGridでダブルクリックでスクロールバーがクリックされていないか確認する
private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
Point p = Mouse.GetPosition(this.DataGrid1);
IInputElement ie = this.DataGrid1.InputHitTest(p);
}
しかし、私はスクロールバーをダブルクリックすると、その後、IInputElementはもののすべての並べ替えのように見える: Microsoft.Windows.Themes.ScrollChromeまたはSystem.Windows.Shapes.Rectangle。だから私はスクロールバーをクリックしたかわからない。
スクロールバーを実際にダブルクリックしたかどうかを確認するにはどうすればよいですか?
回答ありがとうございます!ちなみに、テキストセルをダブルクリックすると、e.OriginalSourceでTextBlockが取得され、VisualTreeHelper.GetParentはnullを返します。なぜなのかご存知ですか? –
@ Bogdan0x400あなたはどのようなタイプをTとして渡しますか? –
私はこのコードを使用しません。私はセルをダブルクリックするとVisualTreeHelper.GetParent(e.OriginalSource)を試してみて、驚いたことにnullを返します。 –