2012-05-07 40 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