0
在我的WP7应用程序中,所有页面都使用ImageBrush作为我在ResourceDictionay中定义的背景。这个ResourceDictionary是通过App.xaml全局合并的。在ResourceDictionary中的图像刷的定义是这样的:在运行时从ResourceDictionary更新ImageBrush
<ImageBrush x:Key="PhonePageBackground" ImageSource="/Background1.jpg"/>
我试着在运行时更新图像刷的ImageSource的,但它不工作。
制作一些测试,在那里我有上有一个按钮,一个页面来改变的背景下,我意识到,下面的代码工作正常:
ImageBrush image;
public MainPage()
{
InitializeComponent();
image = new ImageBrush { ImageSource = new BitmapImage(new Uri("/Background1.jpg", UriKind.Relative)) };
LayoutRoot.Background = image;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
image.ImageSource = new BitmapImage(new Uri("/Background2.jpg", UriKind.Relative));
}
但下面的代码,在这里我用的是图像刷从字典,不起作用。页面的背景变得透明,好像图像无法找到:
ImageBrush image;
public MainPage()
{
InitializeComponent();
image = (ImageBrush)Application.Current.Resources["PhonePageBackground"];
LayoutRoot.Background = image;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
image.ImageSource = new BitmapImage(new Uri("/Background2.jpg", UriKind.Relative));
}
这两个图像(Background1.jpg和Background2.jpg)构建操作都设置为内容。我已经测试过资源集,但没有成功。
为什么会出现这种行为的任何知识?
这确实有效,但它不是我想要完成的。您正在更新LayoutRoot.Background,但不是资源字典中的ImageBrush。我想要更新背景和ImageBrush资源。该问题已在我的另一篇文章[here]中得到解决(http://forums.create.msdn.com/forums/t/102679.aspx) – dferrazm 2012-04-09 13:44:00