4

私はWindows 8の音楽アプリに取り組んでいます。現在の曲/アルバムの画像でページの背景を変更しています。イメージを変更しているときに、fadeIn/dafeOut アニメーションを追加したいのですが、どうすればそれができるのかわかりません。

    <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" に設定すると、アニメーションは機能しますが、背景だけでなくページ全体に適用されます。

4

1 に答える 1

3

ページの背景として画像を配置しないでください。背景を保持する別のグリッド/境界線を追加してください。アニメのOpacityように使います。TargetProperty

これは、現在のアニメーションが、作成した新しいイメージ ブラシではなく、古いイメージ ブラシで動作しているためです。

于 2013-05-05T12:13:43.560 に答える