2013-09-22 79 views
2

我不知道什麼時候應用程序啓動後Style存儲在Generic.xaml文件正在被加載,並在此之後,這種情況發生的頻率。我的意思是他們只裝載一次或每次實例化一個新對象Control?此外,Style-資源實際上多久讀取資源文件?何時加載Generic.xaml樣式?

回答

2

I.我的意思是他們只加載一次或每次一個新的對象的控件被實例化?

Style'sResourceDictionary只在程序開始時加載一次。從link報價:

下您的項目在「主題」目錄將「編制」每一個資源字典(此編譯過程由MSBuild的完成,自定義生成任務)到BAML表示,這些BAML文件將視爲最終編譯的程序集的資源文件。

主題程序集的另一個好處是可以使用主題程序集來定義純資源或共享資源程序集,因爲主題程序集內的資源字典只會加載一次,這比ResourceDictionary提供更多好處。 MergedDictonaries機制。

II.此外,風格資源真正從資源文件中讀出的頻率如何?

每個Style,ResourceDictionary被編譯成BAML代碼,並且這些資源是程序集的一部分。所有程序集都通過JIT編譯器加載到內存中(在開始時),並且進一步的工作是在內存中的應用程序中。我的意思是,根據JIT編譯器的邏輯,我不認爲應用程序每次讀取樣式時,所有內容都以元數據的形式存儲在內存中,隨後的處理必須在內存中進行。

關於JIT編譯器的工作和有關.NET的工作,您可以閱讀Jeffrey Richter的精彩book

+0

@ user1574054:請參閱我的編輯,我希望它對您有用。 –