2017-10-13 98 views
0

我正在使用xamarin.forms,並希望在圖像源發生更改時啓動動畫。如何在圖像源改變時實現動畫?

  <ListView > 
       <ListView.ItemTemplate> 
        <DataTemplate> 
         <ViewCell> 
          <Image Source="{Binding FavoriteImage}" x:Name="favoriteImage"> 
           <Image.GestureRecognizers> 
            TapGestureRecognizer Command="{Binding Source={x:Reference CurrentPage},Path=BindingContext.ClickLikedCommand}" CommandParameter="{Binding .}" NumberOfTapsRequired="1"/> 
           </Image.GestureRecognizers> 
          </Image> 
         </ViewCell> 
        </DataTemplate> 
       </ListView.ItemTemplate> 
      </ListView> 

圖像源被綁定到視圖模型的變量,並且如果用戶單擊圖像並從服務器獲取一個成功的響應將被改變。然後新的圖像將顯示一些自定義動畫,所以我可以在圖像源改變後觸發這個動畫? 我已經在線閱讀了「行爲」和「觸發器」教程,看起來它可以通過事件觸發動畫,但Image類沒有這樣的「SourceChanged」事件。

回答

1

可以使用OnPropertyChanged方法:

public class ExImage : Image 
{ 
    protected override void OnPropertyChanged(string propertyName = null) 
    { 
     base.OnPropertyChanged(propertyName); 

     if (propertyName == nameof(Source)) 
      Device.BeginInvokeOnMainThread(async() => 
      { 
       await this.ScaleTo(1.2); 
       await this.ScaleTo(1); 
      }); 
    } 
} 
相關問題