Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önceden tanımlanmış bir kaynağa başvuru değerlendirerek herhangi bir XAML özniteliği için bir değer sağlar. Kaynaklar bir ResourceDictionary içinde tanımlanır ve StaticResource kullanımı ResourceDictionary'de bu kaynağın anahtarına başvurur.
XAML öznitelik kullanımı
<object property="{StaticResource key}" .../>
XAML değerleri
| Süre | Description |
|---|---|
| key | İstenen kaynağın anahtarı. Bu anahtar başlangıçta ResourceDictionary tarafından atanır. Kaynak anahtarı, XamlName Dilbilgisinde tanımlanan herhangi bir dize olabilir. |
Açıklamalar
StaticResource , XAML kaynak sözlüğünde başka bir yerde tanımlanan bir XAML özniteliğinin değerlerini almak için kullanılan bir tekniktir. Değerler, birden çok özellik değeri tarafından paylaşılması amaçlandığından veya XAML kaynak sözlüğü bir XAML paketleme veya faktöring tekniği olarak kullanıldığından kaynak sözlüğüne yerleştirilebilir. XAML paketleme tekniğine örnek olarak bir denetim için tema sözlüğü yer alır. Başka bir örnek, kaynak geri dönüşü için kullanılan birleştirilmiş kaynak sözlükleridir.
StaticResource , istenen kaynağın anahtarını belirten bir bağımsız değişken alır. Kaynak anahtarı her zaman Windows Çalışma Zamanı XAML'deki bir dizedir. Kaynak anahtarının başlangıçta nasıl belirtildiği hakkında daha fazla bilgi için bkz. x:Key özniteliği.
StaticResource'un kaynak sözlüğündeki bir öğeye çözümlediği kurallar bu konuda açıklanmaz. Bu, başvurunun ve kaynağın bir şablonda bulunup bulunmadığına, birleştirilmiş kaynak sözlüklerinin kullanılıp kullanılmadığına vb. bağlıdır. Kaynakları tanımlama ve örnek kod dahil olmak üzere bir ResourceDictionary'i düzgün bir şekilde kullanma hakkında daha fazla bilgi için bkz. ResourceDictionary ve XAML kaynak başvuruları.
ÖnemliStaticResource , XAML dosyasında sözcük temelli olarak daha ayrıntılı olarak tanımlanan bir kaynağa ileriye doğru başvuruda bulunmaya çalışmamalıdır. Bunu yapmaya çalışmak desteklenmez. İleriye doğru başvuru başarısız olmasa bile, bunu yapmaya çalışmak bir performans cezası taşır. En iyi sonuçları elde edebilmeniz için kaynak sözlüklerinizin bileşimini, ileriye doğru başvurulardan kaçınılması için ayarlayın.
Çözümlenemeyen bir anahtara StaticResource atamaya çalışmak, çalışma zamanında bir XAML ayrıştırma hatasına neden olur. Tasarım araçları ayrıca uyarılar veya hatalar da sunabilir.
Windows Çalışma Zamanı XAML işlemci uygulamasında StaticResource işlevselliği için yedekleme sınıfı gösterimi yoktur. StaticResource yalnızca XAML'de kullanım içindir. Koddaki en yakın eşdeğer, Bir ResourceDictionary'nin koleksiyon API'sini kullanmaktır; örneğin Contains veya TryGetValue çağrısı.
{ThemeResource} işaretleme uzantısı , başka bir konumdaki adlandırılmış kaynaklara başvuran benzer bir işaretleme uzantısıdır. Fark, {ThemeResource} işaretleme uzantısının etkin olan sistem temasına bağlı olarak farklı kaynaklar döndürebilmesidir. Daha fazla bilgi için bkz. {ThemeResource} işaretleme uzantısı.
StaticResource bir işaretleme uzantısıdır. İşaretleme uzantıları, genellikle öznitelik değerlerinin literal değerler veya işleyici adlarından farklı olması gerektiğinde ve bu gereksinim sadece belirli türlere veya özelliklere tür dönüştürücüleri koymaktan daha genel bir durum olduğunda uygulanır. XAML'deki tüm işaretleme uzantıları, öznitelik söz diziminde "{" ve "}" karakterlerini kullanır. Bu, XAML işlemcisinin işaretleme uzantısının özniteliği işlemesi gerektiğini kabul ettiği kuraldır.
Örnek {StaticResource} kullanımı
Bu örnek XAML, XAML veri bağlama örneğinden alınmıştır.
<StackPanel Margin="5">
<!-- Add converter as a resource to reference it from a Binding. -->
<StackPanel.Resources>
<local:S2Formatter x:Key="GradeConverter"/>
</StackPanel.Resources>
<TextBlock Style="{StaticResource BasicTextStyle}" Text="Percent grade:" Margin="5" />
<Slider x:Name="sliderValueConverter" Minimum="1" Maximum="100" Value="70" Margin="5"/>
<TextBlock Style="{StaticResource BasicTextStyle}" Text="Letter grade:" Margin="5"/>
<TextBox x:Name="tbValueConverterDataBound"
Text="{Binding ElementName=sliderValueConverter, Path=Value, Mode=OneWay,
Converter={StaticResource GradeConverter}}" Margin="5" Width="150"/>
</StackPanel>
Bu özel örnek, özel bir sınıf tarafından yedeklenen bir nesne oluşturur ve bunu ResourceDictionary'de kaynak olarak oluşturur. Geçerli bir kaynak olması için, bu local:S2Formatter öğenin bir x:Key öznitelik değerine de sahip olması gerekir. özniteliğinin değeri "GradeConverter" olarak ayarlanır.
Kaynak daha sonra XAML'in biraz ilerisine geldiğinde talep edilir ve burada {StaticResource GradeConverter} öğesini görürsünüz.
İnceleyin, {StaticResource} işaretleme uzantısı kullanımının, başka bir işaretleme uzantısının bir özelliğini nasıl ayarladığına; {Binding} işaretleme uzantısı burada, böylece iki iç içe işaretleme uzantısı kullanımının bulunduğuna dikkat edin. önce iç değer değerlendirilir, böylece önce kaynak elde edilir ve değer olarak kullanılabilir. Bu örnek {Binding} işaretleme uzantısında da gösterilmiştir.
{StaticResource} işaretleme uzantısı için tasarım zamanı araçları desteği
Bir XAML sayfasında {StaticResource} işaretleme uzantısını kullandığınızda Microsoft Visual Studio, Microsoft IntelliSense açılan listelerine olası anahtar değerlerini içerebilir. Örneğin, "{StaticResource" yazdığınız anda, geçerli arama kapsamındaki kaynak anahtarlarından herhangi biri IntelliSense açılan listelerinde görüntülenir. Sayfa düzeyinde (FrameworkElement.Resources) ve uygulama düzeyinde (Application.Resources) sahip olacağınız tipik kaynaklara ek olarak, XAML tema kaynaklarını ve projenizin kullandığı uzantılardan kaynakları da görürsünüz.
Kaynak anahtarı herhangi bir {StaticResource} kullanımının parçası olarak mevcut olduğunda, Tanıma Git (F12) özelliği bu kaynağı çözümleyebilir ve tanımlandığı sözlüğü gösterebilir. Tasarım zamanı için tema kaynakları, generic.xaml dosyasına gider.
İlgili konular
Windows developer