none
Binding auf gleicher Ebene

    Frage

  • Hallo!

    Ich möchte ein Binding auf Objekte, die sich in der gleichen "Ebene" befinden, mit RelativSource ausführen, um ein Binding mit ElementName zu umgehen. 

    Bsp.:

    Ich habe ein Button mit einer Image als Content. Nun möchte ich die Image animieren.

    <Button>
        <Button.Triggers>
            <EventTrigger RoutedEvent="Button.Click">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.Target="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Image}}" Storyboard.TargetProperty="Height" To="60" Duration="0:0:0.5" FillBehavior="Stop"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Button.Triggers>
        <Image Source="Bilder/clipboard-copy32x32.png" Height="32" />
    </Button>

    Wenn ich der Image einen Namen gebe und Storyboard.TargetName verwende funktioniert die Animation. Allerdings muss ich so der Image immer einen Namen geben.

    Das müsste doch auch mit einem Relativ-Binding funktionieren?

    Fred.

    • Bearbeitet perlfred Mittwoch, 7. Februar 2018 08:50
    Mittwoch, 7. Februar 2018 07:38

Antworten

  • Hallo Fred,

    Um eine Bindung mit einem ElementName zu vermeiden, kannst Du versuchen, mit einer Funktion den Namen zu bestimmen (siehe die RandomName-Funktion). Weitere Informationen für ihre Verwendung in Kombination mit DoubleAnimation-Objekten in WPF findest Du in folgendem Thread:
    Interesting Animation Effects with WPF

    Gruß,

    Ivan Dragov


    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.

    • Als Antwort markiert perlfred Freitag, 9. Februar 2018 07:45
    Donnerstag, 8. Februar 2018 07:15
    Moderator

Alle Antworten

  • Hallo Fred,

    Um eine Bindung mit einem ElementName zu vermeiden, kannst Du versuchen, mit einer Funktion den Namen zu bestimmen (siehe die RandomName-Funktion). Weitere Informationen für ihre Verwendung in Kombination mit DoubleAnimation-Objekten in WPF findest Du in folgendem Thread:
    Interesting Animation Effects with WPF

    Gruß,

    Ivan Dragov


    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.

    • Als Antwort markiert perlfred Freitag, 9. Februar 2018 07:45
    Donnerstag, 8. Februar 2018 07:15
    Moderator
  • Hallo Ivan!

    Danke für deine Antwort!

    Ich habe jetzt kurzer Hand ein kleines UserControl entworfen, da ich dieses Konstrukt doch öfter benötige.

    Viele Grüße Fred.

    Freitag, 9. Februar 2018 07:44