Nasıl yapılır: Uygulama Kapsamı Kaynak Sözlüğü Kullanma

Bu örnekte uygulama kapsamı özel kaynak sözlüğü tanımlama ve kullanma gösterilmektedir.

Örnek

Application paylaşılan kaynaklar için uygulama kapsamı deposunu kullanıma sunar: Resources. Varsayılan olarak, Resources özelliği türünün bir örneğiyle ResourceDictionary başlatılır. kullanarak uygulama kapsamı özelliklerini Resourcesaldığınızda ve ayarladığınızda bu örneği kullanırsınız. Daha fazla bilgi için bkz . Nasıl yapılır: Uygulama Kapsamı Kaynağı Alma ve Ayarlama.

kullanarak Resourcesayarladığınız birden çok kaynağınız varsa, bunun yerine bu kaynakları depolamak ve onunla ayarlamak Resources için özel bir kaynak sözlüğü kullanabilirsiniz. Aşağıda, XAML kullanarak özel bir kaynak sözlüğü nasıl bildirdiğiniz gösterilmektedir.

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

kullanarak Resources tüm kaynak sözlüklerini değiştirmek, her temanın tek bir kaynak sözlüğü tarafından kapsüllendiği uygulama kapsamı temalarını desteklemenizi sağlar. Aşağıdaki örnekte, öğesinin nasıl ayarlanacağı gösterilmektedir ResourceDictionary.

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

Aşağıda, XAML'de kullanıma sunulan Resources kaynak sözlüğünden uygulama kapsamı kaynaklarını nasıl alabileceğiniz gösterilmektedir.

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

Aşağıda, koddaki kaynakları nasıl edinebileceğiniz gösterilmektedir.

//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")

kullanırken Resourcesdikkat edilmesi gereken iki nokta vardır. İlk olarak, sözlük anahtarı bir nesnedir, bu nedenle hem ayarlarken hem de özellik değeri alırken tam olarak aynı nesne örneğini kullanmanız gerekir. (Dize kullanırken anahtarın büyük/küçük harfe duyarlı olduğunu unutmayın.) İkincisi, sözlük değeri bir nesnedir, bu nedenle bir özellik değeri alırken değeri istenen türe dönüştürmeniz gerekir.

Bazı kaynak türleri, ve DataTemplate türleri gibi açık bir anahtar olarak tür tarafından tanımlanan bir özelliği otomatik olarak Style kullanabilir. Bu, değerinizi x:Key geçersiz kılabilir. Anahtarınıza x:Key uyulduğunu garanti etmek için bunu açık anahtar özelliğinden önce bildirin. Daha fazla bilgi için bkz . Stiller, DataTemplates ve örtük anahtarlar.

Ayrıca bkz.