2011-12-19 16 views
1

DataGridCellでMouseLeftButtonDownEventを発生させる次のコードがあります。DataGridCellのAutomationPeerを使用したWPF - MouseDown

DataGridCell dataGridCell = cell as DataGridCell; 
MouseButtonEventArgs someEventArgs = 
    new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left); 
someEventArgs.RoutedEvent = DataGridCell.MouseLeftButtonDownEvent; 
dataGridCell.RaiseEvent(someEventArgs); 

正常に動作し、セルが選択されています。しかし、私は今、AutomationPeerを使って同じことをしようとしていますが、私は同じことをする方法を見つけることができませんでした。

AutomationPeersを使用して行うことはできますか?はいの場合はどうすればいいですか?

注:Clickイベントではなく、MouseDownEventを発生させる必要があります。

おかげ

答えて

2

短い答えはノーである: - 例えば

のAutomationPeerクラスはUIAutomationクライアントように、WPFクラスは、UIAutomation関連のインターフェイスを実装できるようにするために存在します。 screenreadersと高い(ish)レベルの自動UIテストで使用できます。これらのインターフェースは、一般的にマウスやキーボードの入力よりも高いレベルで、その代わりに選択や選択された状態のような概念を扱います。

UIAutomationのInvokeProvider.Invoke()メソッドを使用してボタンを押すと、AutomationPeerはボタンをクリックしてもボタンを押し上げるので、ボタンが押されたときのようになりますが、ボタンは押されません任意のマウスまたはキーボード入力が含まれます。マウスイベントは発生せず、キーボードイベントも発生しません。

一般に、UIAutomationは他のアプリケーションを自動化するために使用されています...ピアクラスは、UIAutomationインフラストラクチャに機能を公開する目的でのみ使用されます。実際にそれらのクラスを独自のコードで呼び出すことは非常にまれです。

関連する問題