私のWP7アプリケーションでは、すべてのページでResourceDictionayで定義した背景としてImageBrushを使用しています。このResourceDictionaryは、App.xamlを通じてグローバルにマージされます。実行時にResourceDictionaryからImageBrushを更新する
<ImageBrush x:Key="PhonePageBackground" ImageSource="/Background1.jpg"/>
Imは、実行時にImageBrushのImageSourceはを更新しようとしているが、そのは動作していない:のResourceDictionaryでImageBrushは、次のように定義されています。
私は背景を変更するには、その上にボタンでページを持っているいくつかのテストを、作る、私は以下のコードが正常に動作することを実現:
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を使用して、以下のコードを、辞書は機能しません。ページの背景が透明になり、画像が見つかりませんでしたかのように、:
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