WPF 資源字典

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

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

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

資源文件分級:
系統性資源,通常會在app.xaml中集成;
編碼

<ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

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

窗體級資源;url

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

文件級資源;在窗體中再將其註冊爲窗體資源;spa

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


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

     <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>

文本框的背景顯示白色;htm

資源優先級:

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

 

補充:

動態資源:在後臺中能夠修改動態資源,比較靈活,動態資源是從所在的控件向上查找;
靜態資源:系統開銷少,靜態資源是從所在的容器向上查找;blog

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

大鬍子的 WPF經典教程.pdf

相關文章
相關標籤/搜索