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.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin