2011-01-12 33 views
9

Ben vurgulu üzerinde Expression Blend 4'te bir resmin üzerine bir WPF Storyboard animasyon oluşturduk, görüntü giderek bulanıklaştırır. Mouse görüntüyü terk ettiğinde Storyboard'un geri alınabileceği veya tersine dönebileceği bir yol var mı? Ben() Storyboard.Remove tetikleyebilir yapabilir ama aslında geriye Film Şeridi 'ile oynamak olmaz.WPF Storyboard animasyonu nasıl değiştirilir?

ben Expression Blend 4 içinde bunu başarmak herhangi bir yolu var mı?

+0

ben Expression Blend kullanmayın, ama belki doğrudan xaml üzerinde çalışmak ister misin? Bir storyboard'u başka bir etkinlikle tersine çevirmek için en kolay yol, animasyonu ters sırada yapan yeni bir storyboard oluşturmak ve bu olaya etiketlemektir –

+0

Bunu yapmayı düşünüyordum ama henüz başka bir storyboard oluşturmaktan kaçınmaya çalışıyordum. Giriş için teşekkürler. –

+0

"do-ve-ters", tek bir olay ile tetiklenir Şimdiye kadar eğer, kolayca yapılabilir, ancak ur durum için, bu 2 ayrı olaydır. Tek başına xaml ile uygun bir yol bilmek ister. –

cevap

11

. Yapmanız gereken tek şey, nesnenin MouseOver ve Normal gibi çeşitli hallerinde neye benzediğini ve çeşitli durumlar arasındaki geçişlerin ne kadar uzun olduğunu ve görsel durum yöneticisinin durumları arasında nasıl geçiş yapacağını açıklamaktır.

bir görüntü herhangi bir görsel durumlarını yok ama sen düğme için durumlarını bir Button şablonunu düzenlemek ve içeriği bir resim yapması ve sonra düzenleyebilirsiniz. Bunu yaptık ve tekniği göstermek için XAML temizledim: O Blend sizin için tüm bu yok

<Grid> 
    <Grid.Resources> 
     <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type Button}"> 
         <Image x:Name="image" Height="100" Width="Auto" Source="http://thecybershadow.net/misc/stackoverflow.png" Margin="0,0,-25,0"> 
          <Image.Effect> 
           <DropShadowEffect ShadowDepth="0"/> 
          </Image.Effect> 
          <VisualStateManager.VisualStateGroups> 
           <VisualStateGroup x:Name="CommonStates"> 
            <VisualStateGroup.Transitions> 
             <VisualTransition GeneratedDuration="0:0:0.5"/> 
            </VisualStateGroup.Transitions> 
            <VisualState x:Name="Normal"/> 
            <VisualState x:Name="MouseOver"> 
             <Storyboard> 
              <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(DropShadowEffect.ShadowDepth)" Storyboard.TargetName="image"> 
               <EasingDoubleKeyFrame KeyTime="0" Value="15"/> 
              </DoubleAnimationUsingKeyFrames> 
             </Storyboard> 
            </VisualState> 
            <VisualState x:Name="Pressed"/> 
            <VisualState x:Name="Disabled"/> 
           </VisualStateGroup> 
          </VisualStateManager.VisualStateGroups> 
         </Image> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Grid.Resources> 
    <Button Style="{StaticResource ButtonStyle1}"/> 
</Grid> 

Not ama XAML anlamakta yardımcı olacaktır. İşte Blend odaklı öğretici var:

+0

Yardımlarınız için teşekkürler. Bir Düğme yapmak, bir çeşit serseridir, fakat doğru şekilde çalıştığı sürece, onunla başa çıkabilirim. Teşekkürler! –

+0

Örneğimde, tüm düğmelerin nasıl "stilini" belirleyebileceğinizi görüyorsunuz: krom yok, kenarlık yok, gereksiz fare davranışı yok, vb. Ama gönderdiğim bağlantıları okursanız, size nasıl Herhangi bir öğe türü için kendi durum gruplarınızı ve MouseOver ve Normal gibi durumları oluşturun. Yani, hayır, bir düğme gibi görünmüyor ya da benzemiyor. –

+0

Bu cevabı değil "Nasıl WPF Storyboard animasyon Ters?". -.-' –

İlgili konular