2016-10-11 8 views
1

のストロークのためのヒットテストの実装:私は私のストローク上でのテストをヒットすることができません以外 Custom Rendering Inkは、私がここで説明されているカスタムInkCanvasと複数のカスタムストロークを、実装しましたInkCanvas

すべてのものは、正常に動作します。上記リンクの「実装カスタムストローク」セクションで は、それは言う:

Strokeクラスは、ヒットテストをも実行することができます。現在のクラスのHitTestメソッドをオーバーライドすることによって、独自のヒットテストアルゴリズムを実装することもできます。

しかし、ここでHitTestメソッドのオーバーライド可能なバージョンは見つかりません。

誰でもカスタムストロークでヒットテストを実装できますか?

おかげ

答えて

0

まあ、解決策を見つけました。

protected override void OnPreviewMouseDown(MouseButtonEventArgs e) 
    { 
     if (EditingMode == InkCanvasEditingMode.Select) 
     { 
      var strokes = Strokes.Where(x => (x is CustomStroke) && ((CustomStroke)x).HitTestPoint(e.GetPosition(this))).ToList(); 

      if (strokes.Any()) 
       Select(new StrokeCollection(strokes)); 
     } 
     base.OnPreviewMouseDown(e); 
    } 
関連する問題