0

以下のガイダンスが必要です。操作イベントは、処理されるまでビジュアル ツリーを上にルーティングすることになっていますか?

私は次のものを持っています:

Canvas canvas = new Canvas();
canvas.Width = 1920;
canvas.Height = 1200;
canvas.IsManipulationEnabled = true;
canvas.AddHandler(ManipulationStartingEvent, new EventHandler<ManipulationStartingEventArgs>(CanvasManipulationStarting), true); 

ScatterViewItem svi = new ScatterViewItem();
svi.AddHandler(ManipulationStartingEvent, new EventHandler<ManipulationStartingEventArgs>(SVIManipulationStarting), true);
svi.Content = canvas;

public void SVIManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
   //e.Handled = true; //This fires if uncommented
}

public void CanvasManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
     e.Handled = true; //This never fires regardless :( sob
}

キャンバスをクリックすると、SVIManipulationStarting が起動しますが、コメントを外すと、CanVasManipulationStarting は起動しませんか?

4

1 に答える 1

0

私の理解が正しけれCanvasば、クリックしても が操作イベントを発生させず、ScatterViewItem( のコンテナーであるCanvas) がこのイベントを発生させる方法はありません。特に、Canvas操作イベント ハンドラーで処理する場合はそうです。

  • 本当にキャンバスをクリックしていますか? 背景色を追加して確認します。色がCanvasない場合は、に設定するまでクリックできませんBackgroundIsHitTestVisibletrue
  • Canvasあなたに追加せずにあなたを操作してみてくださいScatterViewItem(ただし、他の既存のコンテナに)。Canvas他の状況でのあなたの行動をチェックするだけです。
于 2012-12-11T08:41:37.900 に答える