WPF 資源字典


使用好處:存儲需要被本地話的內容(錯誤消息字符串等,實現軟編碼),減少重復的代碼,重用樣式,實現多個項目之間的共享資源;
修改一個地方所有引用的地方都會被修改,方便統一風格;

使用方法,歸納起來主要有下面幾個步驟:
a. 創建資源字典文件,
b. 資源字典集成
c. 使用字典中的資源

說明:在創建資源的時候要確保資源文件的編譯選項為page,這樣就能夠保證XAML資源文件最終能夠編譯為baml文件。但是如果設置為Resource也是一個不錯的選擇,這樣它能夠嵌入到程序集中,但是不被編譯,當然其解析的速度回稍微慢一點

資源文件分級:
系統性資源,一般會在app.xaml中集成;

<ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

                <ResourceDictionary Source="Test.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>

窗體級資源;

 <Window.Resources>
        <SolidColorBrush x:Key="FadeBrush" Color="Red"/>
    </Window.Resources>

文件級資源;在窗體中再將其注冊為窗體資源;

    <Window.Resources>
        <ResourceDictionary Source="MyResouceDictionary.xaml"></ResourceDictionary>
    </Window.Resources>


對象控件級資源:定義在某個ContentControl ,作為子元素的共享資源;

     <Button  Grid.Row="0" Click="Button_Click" Background="{StaticResource  FadeBrush}" >
            <Button.Resources>
                <SolidColorBrush x:Key="FadeBrush" Color="White" ></SolidColorBrush>
            </Button.Resources>
            <Button.Content>
                <TextBlock Background="{StaticResource FadeBrush}" >看我自己的顏色</TextBlock>
            </Button.Content>
        </Button>

文本框的背景顯示白色;

資源優先級:

具體引用時,從所在容器向上查找,比如有相同key值的系統資源和窗體級資源,那么使用窗體級資源;
對象級資源會覆蓋窗體級資源;

 

補充:

動態資源:在后台中可以修改動態資源,比較靈活,動態資源是從所在的控件向上查找;
靜態資源:系統開銷少,靜態資源是從所在的容器向上查找;

參考:http://www.cnblogs.com/tianyou/archive/2012/12/07/2806835.html

大胡子的 WPF經典教程.pdf

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM