2012-05-07 39 views
1

首先,我創建了一個用於動態更改背景圖像的按鈕(命名爲BackgroundChooser)(它們可以選擇自己的圖像作爲背景)。但我已經使用了我的Windows Phone 7應用程序的默認背景圖像(image1.jpg)。當我點擊選擇背景按鈕時,它會指向我們保存的圖片。之後,我選擇了我的圖像作爲我自己的背景圖像。但是默認的背景圖片仍然沒有改變。 然後,當我將默認背景更改爲黑色時,則可以設置自己的背景圖像(完美工作)。需要幫忙!!!預先感謝您的辛勤工作!動態更改背景錯誤

下面是代碼我有used-:

private void BackgroundChooser_Click(object sender, MouseEventArgs e) 
    { 
     var PhotoChooser = new PhotoChooserTask(); 
     PhotoChooser.Completed += new EventHandler<PhotoResult(PhotoChooser_Completed); 
     PhotoChooser.Show(); 
    } 

    void PhotoChooser_Completed(object sender, PhotoResult e) 
    { 
     { 
      if (e.TaskResult == TaskResult.OK) 
      { 
       System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage(); 
       bmp.SetSource(e.ChosenPhoto); 
       var app = Application.Current as App; 
       if (app == null) 
       return; 
       var imageBrush = new ImageBrush { ImageSource = bmp, Opacity = 0.5d }; 
       app.RootFrame.Background = imageBrush; 
       //app.RootFrame.Background = new SolidColorBrush(Colors.Black); //we can apply just color too like this 
      } 
     } 
    } 
+0

我也試過這樣做,也沒有工作。好奇看看有人是否有這個答案。 – Dante

+0

如何以及在哪裏設置默認背景? –

回答

1

,而不是app.RootFrame.Background,請嘗試將一些顯示對象的背景屬性頁面上,如myPanoramaControl.Background = imageBrush;LayoutRoot.Background = imageBrush;(其中LayoutRoot是默認的名稱網格控制一個新的WP頁)

+0

嗯,我看到一個使用app.RootFrame.Background的例子,所以也許這一切都很好,很花哨。如果是這樣的話,那麼我認爲你的'BitmapImage' obj有一個問題。爲了好玩,嘗試設置'bmp = new BitmapImage(new Uri(「http:urlToAnImage」,UriKind.Absolute))'並且看看這是否有訣竅 – earthling

+0

謝謝你這麼多earthling .....它工作! – user1316766