根據用戶在窗口內的哪個導航頁面,我有兩個窗口的背景圖像。圖像位於我的項目文件夾內的位置:設置背景URI圖像不工作
<NavigationWindow.Background>
<ImageBrush ImageSource="/Blah.MyApp;component/Resources/Images/MyImage1.jpg" />
</NavigationWindow.Background>
這正確顯示圖像:
/Resources/Images/MyImage1.jpg
如果我用IDE來選擇一個固定的背景圖片,然後將XAML文件與更新。
然而,正如我希望的圖像切換,我創建了一個視圖模型爲如下暴露一個URI屬性窗口(其中實現INotifyPropertyChanged):
private readonly string _image1 = "pack://application:,,,/Resources/Images/MyImage1.jpg";
private readonly string _image2 = "pack://application:,,,/Resources/Images/MyImage2.jpg";
public MainNavWindowViewModel()
{
SetImage1();
}
private Uri _backgroundImg;
public Uri BackgroundImg
{
get
{
return _backgroundImg;
}
private set
{
_backgroundImg = value;
OnPropertyChanged("BackgroundImg");
}
}
public void SetImage1()
{
BackgroundImg = new Uri(_image1);
}
public void SetImage2()
{
BackgroundImg = new Uri(_image2);
}
在主窗口中的XAML文件,我已將NavigationWindow.Background替換爲:
<NavigationWindow.Background>
<ImageBrush ImageSource="{Binding Path=BackgroundImg, Mode=OneWay}" />
</NavigationWindow.Background>
並將Windows'DataContext設置爲ViewModel。
但是,這個功能只是在我的窗口上顯示一個黑色的背景(當我註釋掉數據綁定ViewModel到窗口的那一行時,這是相同的行爲)。
我將ViewModel設置爲窗口構造函數的第一行中的Datacontext。如果我在它上面放置一個斷點,它會執行這些行並且看起來沒問題。
任何想法正在發生什麼,或者我怎麼能找出它出錯的地方?
TIA
感謝您的回覆。現在不再是問題,但我使用.Net 4。 – millie 2012-05-17 15:40:44