2010-01-04 4 views
7

Ich habe eine Ellipse auf einem Canvas und ich mache Hit Testing darauf. Jedes Mal, wenn ich den Strich des Ellipse klicke, wird der Test bestanden. Wenn ich in der Mitte der Ellipse klicke, schlägt der Test fehl. Das ist gut!Hit Tests in WPF

Nachdem ich die Ellipse wie folgt gefüllt habe: myEllipse.Fill = new SolidColorBrush(Colors.Blue);, der Test pasess auch wenn ich in der Mitte der Ellipse klicke.

Wie kann ich dies deaktivieren? (auch wenn Ellipse gefüllt ist, wird der Test fehlschlagen, wenn ich in der Mitte klicke) Danke!

Antwort

8

Wenn Sie eine eigene Treffertests tun (siehe Hit Testing in the Visual Layer für Details, wie dies zu tun), sollten Sie in der Lage sein, die IntersectionDetail der GeometryHitTestResult zu überprüfen ist IntersectionDetail.Intersects und nicht IntersectionDetail.FullyContains.

+0

Der Link zu 4.5 zeigt nicht (?) ... aber 4.0 funktioniert. [Treffertest in der visuellen Ebene] (https://msdn.microsoft.com/en-us/library/vstudio/ms752097%28v=vs.100%29.aspx) – OmegaMan

0

Kannst du eine kleinere Ellipse in der Mitte davon setzen und IsHitTestVisible = "false" setzen?

+1

Dies verhindert nicht, dass die untere Ellipse getroffen wird , IsHitTestVisible = false macht dieses Element für Treffertests unsichtbar, wirkt sich jedoch nicht auf Elemente unterhalb des betroffenen Elements aus. –