2

我的項目中有一個頁面,當用戶在屏幕中觸摸時,此頁面會將我的資源中的背景屬性更改爲隨機圖片,但當更改時,頁面背景會在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

你可以創建一個簡短的動畫來將圖像淡化爲0%不透明度,切換圖像,然後回到100%? –

回答

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和設置您的隨機屬性。您甚至可以將動畫從一個框架「緩動」到另一個框架,從而平滑顯示。

+0

這是行不通的。我正在使用WP 8.1 RT! –

+0

@BoltDelta在運行時搜索StoryBoard,並且改變代碼以適應它,它幾乎是一樣的。 –

+0

謝謝。我已經用FlipView解決了我的問題,我之前不知道它:D –