2012-04-08 15 views
0

私の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)アクションを構築するには、コンテンツとして設定されています。私はリソースセットでテストしましたが、成功しませんでした。

この現象の原因についての知識はありますか?

答えて

1

これは私のために働く。

ImageBrush image; 
     public MainPage()     
     { 
      InitializeComponent(); 

      image = (ImageBrush)Application.Current.Resources["PhonePageBackground"]; 
      LayoutRoot.Background = image; 
     } 


private void button1_Click(object sender, RoutedEventArgs e) 
     { 

      image = new ImageBrush { ImageSource = new BitmapImage(new Uri("/Background2.jpg", UriKind.Relative)) }; 
      LayoutRoot.Background = image; 
    } 
+0

これは実際には機能しますが、それは何を達成しようとしているのではありません。 LayoutRoot.Backgroundを更新していますが、リソース辞書のImageBrushは更新していません。バックグラウンドとImageBrushリソースの両方を更新したい。この問題は他の投稿[here](http://forums.create.msdn.com/forums/t/102679.aspx)で解決されています。 – dferrazm

関連する問題