2012-01-28 36 views
6

Tôi có hoạt ảnh của mình hoạt động được kích hoạt bởi một thuộc tính trong ViewModel của tôi. Nếu tôi đặt TargetProperty thành Width, mã bên dưới thực sự hoạt động trong việc phát triển hình ảnh.Phần tử hoạt hình WPF trong XAML sử dụng thuộc tính đính kèm?

Tiếp theo, tôi muốn thực sự di chuyển hình ảnh lên và xuống. Để làm điều này, tôi đã thêm một thành phần Canvas xung quanh hình ảnh của mình, để có thể tạo hiệu ứng động dựa trên thuộc tính Canvas.Top. Đặt Canvas.Top trên hình ảnh sẽ di chuyển đến nơi tôi muốn.

Tuy nhiên, nếu tôi đặt tôi StoryBoard.TargetProperty-Canvas.Top, tôi nhận được một lỗi:

Cannot resolve all property references in the property path Canvas.Top.

<Style x:Key="LoadingImageAnimation" TargetType="{x:Type Image}"> 
    <Style.Triggers> 
    <DataTrigger Binding="{Binding IsLoading}" Value="True"> 
     <DataTrigger.EnterActions> 
     <BeginStoryboard> 
      <Storyboard> 
      <DoubleAnimation From="10" To="250" AutoReverse="True" Duration="0:0:30" 
          Storyboard.TargetProperty="Canvas.Top"/> 
      </Storyboard> 
     </BeginStoryboard> 
     </DataTrigger.EnterActions> 
    </DataTrigger> 
    </Style.Triggers> 
</Style> 

Là cách tiếp cận của tôi hoàn toàn tắt, hoặc chỉ là vấn đề của việc tìm kiếm các tài sản gắn liền?

+2

Hãy thử 'Storyboard.TargetProperty =" (Canvas.Top) "'. –

Trả lời

12

đã thực hiện một số thao tác xung quanh trên Property Path Syntax. và giải pháp thực sự đơn giản .. Cần thêm dấu ngoặc đơn "(Canvas.Top)".

Hoạt ảnh không mượt mà như tôi muốn .. nhưng ít nhất nó hoạt động ngay bây giờ.

+0

+1 Tôi sẽ đăng bài đó. –

Các vấn đề liên quan