2013-05-05 4 views
4

저는 Windows 8 뮤직 앱을 제작 중입니다. 현재의 노래/앨범의 이미지로 페이지의 배경을 바꾸고 있습니다. 이미지를 변경하는 동안 fadeIn/dafeOut 애니메이션을 추가하고 싶지만 어떻게 할 수 있는지 알 수 없습니다.배경 이미지를 변경하는 중 애니메이션 (C# winrt)

<Grid x:Name="LayoutRoot" Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> 
     <Grid.Resources> 
      <Storyboard x:Name="fadeOutStoryBoard"> 
       <DoubleAnimation 
        Storyboard.TargetName="LayoutRoot" 
        Storyboard.TargetProperty="(LayoutRoot.Background).(ImageBrush.Opacity)" 
        From="1.0" To="0.0" Duration="0:0:10"/> 
      </Storyboard> 
      <Storyboard x:Name="fadeInStoryBoard"> 
       <DoubleAnimation 
        Storyboard.TargetName="LayoutRoot" 
        Storyboard.TargetProperty="(LayoutRoot.Background).(ImageBrush.Opacity)" 
        From="0" To="1.0" Duration="0:0:10"/> 
      </Storyboard> 
     </Grid.Resources> 
    </Grid> 

    In C# code: 
    ImageBrush image = new ImageBrush(); 
    image.ImageSource = new BitmapImage(imageUri); 
    fadeOutStoryBoard.Begin(); 
    MainPage.Current.LayoutRoot.Background = image; 
    fadeInStoryBoard.Begin(); 

이미지가 잘 변경되지만 애니메이션이 표시되지 않습니다. TargetProperty를 (LayoutRoot.Background) .Opacity 또는 (LayoutRoot.Background) (SolidColorBrush.Opacity)로 변경해 보았습니다.하지만 행운은 없습니다. TargetProperty를 "Opacity"로 설정하면 애니메이션이 작동하지만 배경이 아닌 페이지 전체에 적용됩니다.

답변

3

이미지를 페이지의 배경으로 놓지 마십시오. 배경을 보유 할 다른 눈금/테두리를 추가하십시오. 애니메이션에서 OpacityTargetProperty으로 사용하십시오.

그 이유는 현재 애니메이션이 이전 이미지 브러시에서 작동하고 사용자가 만든 새 이미지 브러시에서 작동하지 않기 때문입니다.

관련 문제