2 Stimmen

Bindung an animierte Eigenschaft (WPF)

Weiß jemand, ob es eine Möglichkeit gibt, eine Eigenschaft, die animiert ist, als Quelle für eine Bindung zu verwenden? Soweit ich herausgefunden habe, ist, dass eine Animation nicht "wirklich" den Wert auf die Eigenschaft festgelegt, und daher nicht die geänderten Ereignisse auslösen, die benötigt wird, um die Bindung auslösen.

tia Martin

4voto

Szymon Rozga Punkte 17510

Ich weiß nicht, ob das, was Sie sagen, wirklich zutrifft. In der XAML unten, wird der TextBlock die Breite des Rechtecks anzeigen. Wenn Sie auf das Rechteck klicken, wird die Eigenschaft Breite von 50 bis 300 animiert. Bei jedem Schritt ändert sich der Wert des TextBlocks. Verstehe ich Ihre Frage nicht?

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>
  <TextBlock Text="{Binding ElementName=Rect,Path=Width}" Grid.Row="0" />
  <Rectangle Grid.Row="1"
             Name="Rect"
             Height="30"
             Width="50"
             Fill="Blue"
             HorizontalAlignment="Left">
    <Rectangle.Triggers>
      <EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown">
        <EventTrigger.Actions>
          <BeginStoryboard>
            <Storyboard>
              <DoubleAnimation Storyboard.TargetProperty="Width"
                From="50"
                To="300"
                Duration="0:0:10"/>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger.Actions>
      </EventTrigger>
    </Rectangle.Triggers>
  </Rectangle>
</Grid>

2voto

Nir Punkte 28685

Animation tatsächlich wirklich den Wert ändern, ruft es die Eigenschaft geändert Callback, die Sie an DependecyProperty.Register übergeben und es verursacht ein Layout / Rendern übergeben id erforderlich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X