Feedback

C# - Wpf Shape beinhaltet Point

Veröffentlicht von am 03.02.2014
(1 Bewertungen)
WPF

Diese Extensionmethod prüft, ob eine beliebige Form (Shape) einen bestimmten Punkt beinhaltet.

HINWEIS:
Dieses Beispiel funktioniert nicht bei GeometryGroup.Geometry. Dazu müssten die Formen der Gruppe vorher zusammengefasst werden.
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

public static bool Contains(this Shape shape, Point spot, double spotSize = 3.0)
{
    // Manchmal muss der Punkt noch um den Offset des Elternelements korrigiert werden
    /*
    FrameworkElement parent = shape.Parent as FrameworkElement;
    if (parent != null)
    {
        double left = Canvas.GetLeft(parent);
        double top = Canvas.GetTop(parent);
        spot = new Point(spot.X - left, spot.Y - top);
    }
    */

    Geometry visualSpot = new EllipseGeometry(spot, spotSize, spotSize);
    Geometry visualContainer = shape.RenderedGeometry;
    double oldArea = Math.Round(visualContainer.GetArea());
    double spotArea = Math.Round(visualSpot.GetArea());
    double newSize = Math.Round(Geometry.Combine(visualContainer, visualSpot, GeometryCombineMode.Intersect, null).GetArea());
    
    return newSize > 0;
}
Abgelegt unter WPF, Shape, Contains, Beinhaltet, Punkt, Point, .

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!