2012-04-13 41 views
4

在XAML中,我試圖將窗口/應用程序圖標綁定到文件系統上的圖標。爲什麼我的應用程序圖標不透明?

在Window.xaml

Icon="{Binding ApplicationIcon}" 

在AppViewModel.cs

public ImageSource ApplicationIcon 
{ 
    get 
    { 
    return new BitmapImage(new Uri(pathReadFromConfigFile)); 
    } 
} 

當我這樣做時,圖標被示出,但它是不透明的。但是,如果我在項目中設置圖標(不使用綁定),該圖標將添加到項目中,並且在啓動應用程序時它是透明的。爲什麼這兩種情況下的行爲有所不同?

+2

請原諒我,我不是故意轉移原始問題,但是不是將MVVM推向極端?除非你的圖標在運行時會改變,因此,決策需要在虛擬機中完成,並通過屬性暴露出來,這樣視圖就是被動的。否則,爲什麼要麻煩? – 2012-04-13 16:59:45

+1

我明白你在說什麼,但我們正試圖設計一個可配置的應用程序。我們有幾個非常相似的應用程序,但它們的圖標不同。我們的目標是讓一個可執行文件使用不同的配置文件。 – bsh152s 2012-04-13 17:07:25

+1

是的,有道理的,我問的原因 - 我有一個純粹主義者和一個getter完成之間的內部鬥爭。所以我只是想知道其他人的動機是什麼。感謝您的回覆。 – 2012-04-13 17:17:12

回答

1

想通了。這是BitMapImage創建導致的問題。現在改用BitmapFrame。

public ImageSource ApplicationIcon 
{ 
    get 
    { 
    return BitmapFrame.Create(new Uri(pathReadFromConfigFile)); 
    } 
} 
相關問題