共用方式為


如何:使用應用程式範圍的資源字典

此範例示範如何定義和使用應用程式範圍自訂資源字典。

範例

Application公開共用資源的應用程式範圍存放區:Resources。 預設情況下,Resources屬性會使用ResourceDictionary類型的實例初始化。 使用Resources取得和設定應用程式範圍的屬性時,請使用此實例。 如需詳細資訊,請參閱操作說明:取得和設定應用程式範圍的資源

如果您有使用Resources設定的多個資源,您可以改用自定義資源字典來儲存這些資源,並改為設定Resources。 以下顯示如何使用 XAML 宣告自定義資源字典。

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <SolidColorBrush x:Key="StandardSolidColorBrush" Color="Blue" />
    <LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="White" Offset="0" />
            <GradientStop Color="Black" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
</ResourceDictionary>

使用Resources交換整個資源字典可讓您支援應用程式範圍的主題,其中每個主題都由單一資源字典封裝。 下列範例會示範如何設定 ResourceDictionary

<!--Set the Application ResourceDictionary-->
<Application.Resources>
    <ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>

以下顯示如何從 XAML 中之Resources揭露的資源字典取得應用程式範圍資源。

<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />

下列會顯示也可以如何使用程式碼來取得資源。

//Get a resource from the ResourceDictionary in code
Brush gradientBrush = (Brush)Application.Current.FindResource("StandardLinearGradientBrush");
'Get a resource from the ResourceDictionary in code
Dim GradientBrush As Brush = Application.Current.FindResource("StandardLinearGradientBrush")

在使用Resources時,有兩個注意事項。 首先,字典「索引鍵」是一個物件,因此,您在設定和取得屬性值時必須使用完全相同的物件執行個體 (請注意,使用字串時,索引鍵會區分大小寫)。其次,字典數值是物件,因此在取得屬性值時,您必須將數值轉換為所需的類型。

某些資源類型可能會自動使用類型所定義的屬性作為明確的索引鍵,例如StyleDataTemplate類型。 這可能會覆寫您的x:Key數值。 若要保證您的x:Key索引鍵能被看重,請在明確索引鍵屬性之前加以宣告。 如需詳細資訊,請參閱Styles、DataTemplates 和隱含索引鍵

另請參閱