我的项目中有一个页面,当用户触摸屏幕时,此页面会将我的资产中的背景属性更改为随机图像,但是当更改时,页面背景会在更改为我的图像之前变为黑色或白色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;
}
如何更改图像页面背景流畅?
答案 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;从一帧到另一帧的动画,使显示平滑。