2012-08-30 69 views
2

我的應用程序做了很多與貨幣有關的工作,因此經常使用80-90.ICO文件作爲國家標誌的資源來表示每種貨幣。大多數屏幕使用這些,並且在每次使用時繼續重新加載它們似乎是一種浪費,特別是當我使用具有IMG標籤的數據模板時,它會凍結GUI或使其在ListView等中加載時非常不精確。WPF圖標預加載

是否有某種WPF中推薦的方式或設計,我可以將這些圖像預加載到WPF應用程序空間中,以便每當它們被引用時,它們都已被緩存並全局加載,所以我只需在應用程序啓動時將它們加載到內存中,那麼從此以後的每一次使用都是閃電般的?

謝謝

+0

您是否嘗試過使用應用程序級別的ResourceDictionary? – Gishu

回答

0

我建議把它們放到你的xaml的Application.Resources中。

這些只加載一次,並在您的應用程序中隨處可用。

請參閱msdn上的How to: Use Application Resources

編輯: 在你那裏,你綁定您的項目太多,你需要添加額外的屬性(包含IconSelect類)類。

public BitmapImage BitmapIconSelect 
{ 
    get 
    { 
     return Application.Resources[IconSelect]; 
    } 
} 

,然後綁定到該屬性:

<Image Source="{Binding BitmapIconSelect, IsAsync=True, Mode=OneWay}" Width="20" Height="20" /> 

我寫了這個代碼寫意,所以我不知道這是否編譯,但我希望你明白我的意思。

+0

我在一個數據模板中使用綁定 - 我如何使用靜態資源和綁定? NZJames

+0

我想引用你http://stackoverflow.com/a/606986/ 637425 – SynerCoder

+0

感謝您的鏈接,但我仍然不確定如何使用資源字典。爲了說明,所顯示對象的綁定屬性是位圖圖標的文件名,即USD.ico或GBP.ico - 但這來自對象屬性。目前它被綁定爲我上面的註釋,但我沒有看到如何使用{StaticResource標記可以幫助我,因此必須明確地設置XAML中的資源名稱,而不是來自綁定的屬性在運行時,如果這是有道理的? – NZJames