2011-03-08 5 views
2

mousemove에서 이미지 크기를 조정하거나 이동하려고 시도 중입니다./이미지 소스가 변경되었습니다. 이미지에 대해 다음 스타일을 작성했지만 작동하지 않습니다.ResourceDictionary를 사용한 이미지 변형

<Style x:Key="MovingImage" TargetType="{x:Type Image}"> 
    <Setter Property="HorizontalAlignment" Value="Center"/> 
    <Setter Property="Stretch" Value="Uniform"/> 
    <Setter Property="VerticalAlignment" Value="Top"/> 
    <Setter Property="Width" Value="auto"/> 
    <Setter Property="Height" Value="auto"/> 
    <Style.Resources> 
     <Storyboard x:Key="TransformImage"> 
      <DoubleAnimation Duration="0:0:3" By="-500" Storyboard.TargetProperty="(Image.RenderTransform).(TranslateTransform.X)"></DoubleAnimation> 
      <DoubleAnimation Duration="0:0:3" By="-500" Storyboard.TargetProperty="(Image.RenderTransform).(TranslateTransform.Y)"></DoubleAnimation> 
      <DoubleAnimation Duration="0:0:3" By="-500" From="1" To="0.5" Storyboard.TargetProperty="(Image.RenderTransform).(ScaleTransform.ScaleX)"></DoubleAnimation> 
      <DoubleAnimation Duration="0:0:3" By="-500" From="1" To="0.5" Storyboard.TargetProperty="(Image.RenderTransform).(ScaleTransform.ScaleY)"></DoubleAnimation> 
     </Storyboard> 
    </Style.Resources> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Trigger.EnterActions> 
       <BeginStoryboard Storyboard="{StaticResource TransformImage}" /> 
      </Trigger.EnterActions> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

답변

1

이 작업을 수행하려면 두 가지 작업을 수행해야합니다. 첫째 기본은 사용자가 설정 한하려는 그룹 변환 정의 (그래서 귀하의 경우를 변환 그룹 내부의 적절한 변환) 실제로 대상 속성을 참조 할 때 다음 명시 적으로 지점을 지정해야 다음

<Setter Property="RenderTransform"> 
    <Setter.Value> 
     <TransformGroup> 
      <TranslateTransform /> 
      <ScaleTransform /> 
     </TransformGroup>       
    </Setter.Value> 
</Setter> 

변환하려는 그룹을 선택하십시오. 일부 종료 액션을 추가하여 이미지가 영원히 사라지지 않도록하는 것이 좋습니다.)

<DoubleAnimation Duration="0:0:3" By="-500" Storyboard.TargetProperty="(Image.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"></DoubleAnimation> 
<DoubleAnimation Duration="0:0:3" By="-500" Storyboard.TargetProperty="(Image.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)"></DoubleAnimation> 
<DoubleAnimation Duration="0:0:3" By="-500" From="1" To="0.5" Storyboard.TargetProperty="(Image.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"></DoubleAnimation> 
<DoubleAnimation Duration="0:0:3" By="-500" From="1" To="0.5" Storyboard.TargetProperty="(Image.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"></DoubleAnimation> 
관련 문제