내 WP7 응용 프로그램에서 모든 페이지는 ResourceDictionay에 정의한 배경으로 ImageBrush를 사용합니다. 이 ResourceDictionary는 App.xaml을 통해 전역으로 병합됩니다.런타임에 ResourceDictionary에서 ImageBrush 업데이트
<ImageBrush x:Key="PhonePageBackground" ImageSource="/Background1.jpg"/>
임 런타임시 ImageBrush와의 ImageSource를 업데이트하려고하지만, 그 작동하지 않는 다음 ResourceDictionary에의 ImageBrush와는 다음과 같이 정의된다.
내가 배경을 변경하는 데에 버튼이있는 페이지가 몇 가지 테스트를, 만들기, 나는 아래 코드는 잘 작동 것을 깨달았다 : 나는에서 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 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) 조치를 구축합니다. Resource set로 테스트했지만 성공하지 못했습니다.
왜이 동작의 모든 지식?
실제로 작동하지만 그게 무슨 일을 하려는지는 아닙니다. LayoutRoot.Background는 업데이트하지만 리소스 사전에서는 ImageBrush를 업데이트하지 않습니다. 배경과 ImageBrush 리소스를 모두 업데이트하고 싶습니다. 이 문제는 내 다른 게시물 [여기] (http://forums.create.msdn.com/forums/t/102679.aspx)에서 해결되었습니다. – dferrazm