更改页面背景时图像更改可怕

时间:2014-12-31 11:25:58

标签: c# windows-runtime windows-phone windows-phone-8.1 winrt-xaml

我的项目中有一个页面,当用户触摸屏幕时,此页面会将我的资产中的背景属性更改为随机图像,但是当更改时,页面背景会在更改为我的图像之前变为黑色或白色0.05秒。这太难看了。

以下是我在cs文件中的代码

private void LayoutRoot_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
    {
        Random ran = new Random();
        randomPage.Background = new ImageBrush
        {
            ImageSource =
                new BitmapImage { UriSource = new Uri("ms-appx:///Assets/Backgrounds/" + ran.Next(22) + ".jpg") }
        };

        e.Handled = true;
    }

如何更改图像页面背景流畅?

1 个答案:

答案 0 :(得分:1)

请尝试使用StoryBoard动画。

动画Image

的示例代码
<Image  Stretch="Uniform" Name="myImage" Source="/Images/w1.png" />

<Storyboard x:Name="Storyboard1">
    <ObjectAnimationUsingKeyFrames  Storyboard.TargetProperty="(Image.Source)"  Storyboard.TargetName="myImage" RepeatBehavior="Forever">
        <DiscreteObjectKeyFrame KeyTime="0" Value="="/Images/w1.png"></DiscreteObjectKeyFrame>
        <DiscreteObjectKeyFrame KeyTime="0:0:1" Value="="/Images/w2.png"></DiscreteObjectKeyFrame>
        <DiscreteObjectKeyFrame KeyTime="0:0:2" Value="="/Images/w3.png"></DiscreteObjectKeyFrame>
        <DiscreteObjectKeyFrame KeyTime="0:0:3" Value="="/Images/w4.png"></DiscreteObjectKeyFrame>
        <DiscreteObjectKeyFrame KeyTime="0:0:4" Value="="/Images/w5.png"></DiscreteObjectKeyFrame>
    </ObjectAnimationUsingKeyFrames>
</Storyboard>

Storyboard1.Begin();

在您的情况下,您可能希望在代码隐藏中创建StoryBoard并设置随机属性。你甚至可以轻松地#34;从一帧到另一帧的动画,使显示平滑。