none
TransformToAncestor nicht verfügbar?

    Frage

  • Ich positioniere in meiner Silverlight5-Anwendung mehrere UserControls auf einem WrapPanel. Danach versuche ich die Position der UserControls auszulesen. Laut Google müsste ich dazu item.TransformToAncestor verwenden. Aber Visual Studio bringt mir die Meldung "... does not contain a definition for 'TransformToAncestor'...", obwohl ich System.Windows.Media importiert habe und auch TransformToVisual verfügbar ist. Woran könnte das liegen? Fehlt mir ein Import? Gibt es die Funktion in Silverlight nicht?

    Welche Möglichkeiten habe ich sonst noch? TransformToVisual gibt mir lediglich für jede UserControl "2;2" zurück (also den Margin).

    Ich hoffe auf einen kleinen Wegweiser, da ich mit Google diesmal nicht weiter komme.

    Danke im Voraus!

    Mittwoch, 27. Juli 2016 13:57

Antworten

  • Ich habe inzwischen eine Lösung gefunden, bei der ich TransformToAncestor nicht benötige. Wenn ich TransformToVisual direkt mit meinen beiden Objekten nutze, habe ich zwar immer nur den Margin zurück bekommen. Wenn ich sie aber beide zum Root vergleiche und dann die Differenz nehme funktioniert es interessanterweise. (evtl nur ein Debugfehler beim ersten Versuch?)

    myObj.TransformToVisual(Application.Current.RootVisual as UIElement)

    • Als Antwort markiert Quidnunc1987 Dienstag, 2. August 2016 10:48
    Dienstag, 2. August 2016 10:48

Alle Antworten

  • Hallo Quidnunc1987,

    Hast Du einen Verweis auf WindowsBase.dll hinzugefügt?

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 28. Juli 2016 13:53
    Moderator
  • Hallo Dimitar,

    das hatte ich noch nicht geprüft. Im .Web Teil der Anwendung ist es referenziert, im Client Teil nicht. Allerdings scheint das auch eine WPF dll zu sein, in ein Silverlight Projekt kann man diesen Verweis nicht einfügen.

    Ich denke es muss also eher irgendwas aus dem Ordner
    c:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0 sein, was ich referenzieren müsste.

    Dienstag, 2. August 2016 10:05
  • Ich habe inzwischen eine Lösung gefunden, bei der ich TransformToAncestor nicht benötige. Wenn ich TransformToVisual direkt mit meinen beiden Objekten nutze, habe ich zwar immer nur den Margin zurück bekommen. Wenn ich sie aber beide zum Root vergleiche und dann die Differenz nehme funktioniert es interessanterweise. (evtl nur ein Debugfehler beim ersten Versuch?)

    myObj.TransformToVisual(Application.Current.RootVisual as UIElement)

    • Als Antwort markiert Quidnunc1987 Dienstag, 2. August 2016 10:48
    Dienstag, 2. August 2016 10:48