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.
Bu konu başlığı altında, çoğu XAML dosyasının kök öğesinde bulunan XML/XAML ad alanı (xmlns) eşlemeleri açıklanmaktadır. Ayrıca, özel türler ve derlemeler için benzer eşlemelerin nasıl üretildiğini de açıklar.
XAML ad alanlarının kod tanımı ve tür kitaplıklarıyla ilişkisi
Hem genel amacı hem de Windows Çalışma Zamanı uygulama programlamasına uygulanması için XAML, nesneleri, bu nesnelerin özelliklerini ve hiyerarşi olarak ifade edilen nesne-özellik ilişkilerini bildirmek için kullanılır. XAML'de bildirdiğiniz nesneler, diğer programlama teknikleri ve dilleri tarafından tanımlanan tür kitaplıkları veya diğer gösterimler tarafından desteklenir. Bu kitaplıklar şunlar olabilir:
- Windows Çalışma Zamanı için yerleşik nesne kümesi. Bu sabit bir nesne kümesidir ve XAML'den bu nesnelere erişmek için iç tür eşleme ve etkinleştirme mantığı kullanılır.
- Microsoft veya üçüncü taraflar tarafından sağlanan dağıtılmış kitaplıklar.
- Uygulamanızın dahil olduğu bir üçüncü taraf denetiminin tanımını temsil eden kitaplıklar ve paketiniz yeniden dağıtılabilir.
- Projenizin bir parçası olan ve kullanıcı kodu tanımlarınızın bir kısmını veya tümünü barındıran kendi kitaplığınız.
Yedekleme türü bilgileri belirli XAML ad alanı tanımlarıyla ilişkilendirilir. Windows Çalışma Zamanı gibi XAML çerçeveleri, tek bir XAML ad alanına eşlemek için birden çok derlemeyi ve birden çok kod ad alanını toplayabilir. Bu, daha büyük bir programlama çerçevesini veya teknolojisini kapsayan bir XAML sözlüğü kavramını etkinleştirir. Bir XAML sözlüğü oldukça kapsamlı olabilir; örneğin, bu başvuruda Windows Çalışma Zamanı uygulamaları için belgelenen XAML'lerin çoğu tek bir XAML sözlüğü oluşturur. XAML sözlüğü de genişletilebilir: Türleri yedekleme kod tanımlarına ekleyerek genişletirsiniz ve XAML sözlüğü için zaten eşlenmiş ad alanı kaynakları olarak kullanılan kod ad alanlarına türleri eklediğinizden emin olursunuz.
Bir XAML işlemcisi, bir çalışma zamanı nesne gösterimi oluşturduğunda bu XAML ad alanıyla ilişkili yedekleme derlemelerinden türleri ve üyeleri arayabilir. Bu nedenle XAML, nesne oluşturma davranışının tanımlarını resmileştirmenin ve değiştirmenin bir yolu olarak yararlıdır ve XAML'nin bir Windows Çalışma Zamanı uygulaması için ui tanım tekniği olarak kullanılmasının nedeni budur.
Tipik XAML işaretleme kullanımında XAML ad alanları
Bir XAML dosyası neredeyse her zaman kök öğesinde varsayılan bir XAML ad alanı bildirir. Varsayılan XAML ad alanı, bir ön ek ile nitelemeden bildirebileceğiniz öğeleri tanımlar. Örneğin, bir öğe <Balloon /> bildirirseniz, bir XAML ayrıştırıcısı, varsayılan XAML ad alanında Balon adlı bir öğenin mevcut olduğunu ve geçerli olduğunu bekler. Buna karşılık, Balon tanımlı varsayılan XAML ad alanında değilse, bu öğe adını bir ön ek kullanarak nitelemeniz gerekir, örneğin <party:Balloon />. Ön ek, öğenin varsayılan ad alanından farklı bir XAML ad alanında bulunduğunu gösterir ve bu öğeyi kullanabilmeniz için önce bir XAML ad alanını ön ek grubuna eşlemeniz gerekir. XAML ad alanları, bildirildiği belirli öğeye ve ayrıca XAML yapısındaki bu öğenin içerdiği herhangi bir öğeye uygulanır. Bu nedenle, XAML ad alanları bu devralmadan yararlanmak için neredeyse her zaman bir XAML dosyasının kök öğelerinde bildirilir.
XAML diline ait varsayılan ve XAML ad alanı bildirimleri
Çoğu XAML dosyasının kök öğesinde iki xmln bildirimi vardır. İlk bildirim, bir XAML ad alanını varsayılan olarak eşler: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Bu, ui tanımı işaretleme biçimi olarak da XAML kullanan birkaç öncül Microsoft teknolojisinde kullanılan XAML ad alanı tanımlayıcısı ile aynıdır. Aynı tanımlayıcının kullanımı kasıtlıdır ve daha önce tanımlanmış kullanıcı arabirimini C++, C# veya Visual Basic kullanarak bir Windows Çalışma Zamanı uygulamasına geçirdiğinizde yararlıdır.
İkinci bildirim, XAML tanımlı dil öğeleri için ayrı bir XAML ad alanını eşler ve bunu (genellikle) "x:" ön ekine eşler: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Bu xmlns değeri ve eşlendiği "x:" ön eki, XAML kullanan birkaç öncül Microsoft teknolojisinde kullanılan tanımlarla da aynıdır.
Bu bildirimler arasındaki ilişki, XAML'nin bir dil tanımı olması ve Windows Çalışma Zamanı'nın XAML'yi dil olarak kullanan ve türlerine XAML'de başvurulan belirli bir sözlüğü tanımlayan bir uygulama olmasıdır.
XAML dili belirli dil öğelerini belirtir ve bunların her birine XAML ad alanında çalışan XAML işlemci uygulamaları aracılığıyla erişilebilir olmalıdır. XAML dili XAML ad alanı için "x:" eşleme kuralını proje şablonları, örnek kod ve dil özellikleri belgeleri izler. XAML dili ad alanı, temel Windows Çalışma Zamanı uygulamaları için bile gerekli olan yaygın olarak kullanılan birkaç özelliği tanımlar. Örneğin, kısmi bir sınıf aracılığıyla arka plandaki herhangi bir kodu bir XAML dosyasına eklemek için ilgili XAML dosyasının kök öğesinde bu sınıfı x:Class özniteliği olarak adlandırmanız gerekir. Öte yandan, XAML sayfasında ResourceDictionary ve XAML kaynak başvurularında anahtarlı kaynak olarak tanımlanan herhangi bir öğenin söz konusu nesne öğesinde x:Key özniteliği ayarlanmalıdır.
Varsayılan XAML ad alanına eşleyen kod ad alanları
Aşağıda, şu anda varsayılan XAML ad alanına eşlenmiş kod ad alanlarının listesi yer alır.
- Windows.UI
- Windows.UI.Xaml
- Windows.UI.Xaml.Automation
- Windows.UI.Xaml.Automation.Peers
- Windows.UI.Xaml.Automation.Provider
- Windows.UI.Xaml.Automation.Text
- Windows.UI.Xaml.Controls
- Windows.UI.Xaml.Controls.Primitives
- Windows.UI.Xaml.Data
- Windows.UI.Xaml.Documents
- Windows.UI.Xaml.Input
- Windows.UI.Xaml.Interop
- Windows.UI.Xaml.Markup
- Windows.UI.Xaml.Media
- Windows.UI.Xaml.Media.Animation
- Windows.UI.Xaml.Media.Imaging
- Windows.UI.Xaml.Media.Media3D
- Windows.UI.Xaml.Navigation
- Windows.UI.Xaml.Resources
- Windows.UI.Xaml.Shapes
- Windows.UI.Xaml.Threading
- Windows.UI.Text
Diğer XAML ad alanları
Varsayılan ad alanına ve XAML dili XAML ad alanına "x:" ek olarak, Microsoft Visual Studio tarafından oluşturulan uygulamalar için ilk varsayılan XAML'de eşlenmiş diğer XAML ad alanlarını da görebilirsiniz.
d: (http://schemas.microsoft.com/expression/blend/2008)
"d:" XAML ad alanı tasarımcı desteğine, özellikle Microsoft Visual Studio'nun XAML tasarım yüzeylerinde tasarımcı desteğine yöneliktir. " d:" XAML ad alanı, XAML öğelerinde tasarımcı veya tasarım zamanı özniteliklerini etkinleştirir. Bu tasarımcı öznitelikleri yalnızca XAML'nin nasıl davrandığının tasarım yönlerini etkiler. Bir uygulama çalıştırıldığında, Windows Runtime XAML ayrıştırıcısı tarafından aynı XAML yüklendiğinde tasarımcı öznitelikleri yoksayılır. Genellikle, tasarımcı öznitelikleri herhangi bir XAML öğesinde geçerlidir, ancak uygulamada yalnızca tasarımcı özniteliğini kendiniz uygulamanın uygun olduğu belirli senaryolar vardır. Özellikle tasarımcı özniteliklerinin çoğu, veri bağlama kullanan XAML ve kod geliştirirken veri bağlamları ve veri kaynaklarıyla etkileşime geçmek için daha iyi bir deneyim sağlamaya yöneliktir.
d:DesignHeight ve d:DesignWidth öznitelikleri: Bu öznitelikler bazen Visual Studio veya başka bir XAML tasarımcısı yüzeyinin sizin için oluşturduğu bir XAML dosyasının köküne uygulanır. Örneğin bu öznitelikler, uygulama projenize yeni bir UserControl eklerseniz oluşturulan XAML'nin UserControl kökünde ayarlanır. Bu öznitelikler, XAML içeriğinin bileşimini tasarlamayı kolaylaştırır; böylece, XAML içeriği bir denetim örneği veya daha büyük bir kullanıcı arabirimi sayfasının başka bir bölümü için kullanıldığında var olabilecek düzen kısıtlamaları hakkında biraz tahminde bulunmanız sağlanır.
Not XAML'yi Microsoft Silverlight'tan geçiriyorsanız, kullanıcı arabirimi sayfasının tamamını temsil eden kök öğelerde bu özniteliklere sahip olabilirsiniz. Bu durumda öznitelikleri kaldırmak isteyebilirsiniz. Simülatör gibi XAML tasarımcılarının diğer özellikleri, ölçeklendirme ve görüntüleme durumlarını iyi işleyen sayfa düzenleri tasarlamak için muhtemelen d:DesignHeight ve d:DesignWidth kullanan sabit boyutlu bir sayfa düzeninden daha kullanışlıdır.
d:DataContext özniteliği: Bu özniteliği bir sayfa kökünde veya denetiminde ayarlayarak nesnenin sahip olduğu herhangi bir açık veya devralınan DataContext'i geçersiz kılabilirsiniz.
d:DesignSource özniteliği: Tasarım zamanı için CollectionViewSource nesnesinin Source özelliğini geçersiz kılan bir veri kaynağı belirtir.
d:DesignInstance ve d:DesignData işaretleme uzantıları: Bu işaretleme uzantıları, d:DataContext veya d:DesignSource için tasarım zamanı veri kaynakları sağlamak için kullanılır. Tasarım zamanı veri kaynaklarının nasıl kullanılacağını burada tam olarak belgelemeyeceğiz. Daha fazla bilgi için bkz. Design-Time Öznitelikleri. Bazı kullanım örnekleri için bkz. Tasarım yüzeyindeki örnek veriler ve prototip oluşturma.
mc: (http://schemas.openxmlformats.org/markup-compatibility/2006)
" mc:", XAML okumak için bir işaretleme uyumluluk modunu gösterir ve destekler. Genellikle, "d:" ön eki mc:Ignorable özniteliğiyle ilişkilendirilir. Bu teknik, çalışma zamanı XAML ayrıştırıcılarının "d:" içindeki tasarım özniteliklerini yoksaymalarına olanak tanır.
local: ve common:
"local:", şablonlu bir UWP uygulama projesindeki XAML sayfalarında genellikle sizin için haritalanan bir ön ektir. app.xaml de dahil olmak üzere tüm XAML dosyaları için x:Class özniteliğini ve kodunu içerecek şekilde oluşturulan aynı ad alanına başvuracak şekilde eşleştirilmiştir. Bu ad alanında XAML'de kullanmak istediğiniz özel sınıfları tanımladığınız sürece, XAML'deki özel türlerinize başvurmak için yerel: ön ekini kullanabilirsiniz. Şablonlu bir UWP uygulama projesinden gelen ilgili ön ek yaygın olarak bulunur: Bu ön ek, dönüştürücüler ve komutlar gibi yardımcı program sınıflarını içeren iç içe "Ortak" ad alanını ifade eder ve tanımları Çözüm Gezgini görünümündeki Common klasöründe bulabilirsiniz.
vsm:
Kullanmayın. "vsm:", bazen diğer Microsoft teknolojilerinden içeri aktarılan eski XAML şablonlarında görülen bir ön ektir. Ad alanı başlangıçta eski bir ad alanı araç sorununa değindi. Windows Çalışma Zamanı için kullandığınız herhangi bir XAML'de "vsm:" için XAML ad alanı tanımlarını silmeniz ve Bunun yerine VisualState, VisualStateGroup ve ilgili nesnelerin ön ek kullanımlarını varsayılan XAML ad alanını kullanacak şekilde değiştirmeniz gerekir. XAML geçişi hakkında daha fazla bilgi için bkz. Silverlight veya WPF XAML/code'ı Windows Çalışma Zamanı uygulamasına geçirme.
Özel türleri XAML ad alanları ve ön ekleriyle eşleme
Kendi özel türlerinize erişmek için XAML'yi kullanabilmek için bir XAML ad alanını eşleyebilirsiniz. Başka bir deyişle, özel türü tanımlayan bir kod gösteriminde mevcut olan bir kod ad alanını eşleyerek, kullanım için bir ön ekle birlikte ona bir XAML ad alanı atarsınız. XAML için özel türler Microsoft .NET dilinde (C# veya Microsoft Visual Basic) veya C++ dilinde tanımlanabilir. Eşleme, xmlns ön eki tanımlanarak yapılır. Örneğin, xmlns:myTypes öğesi, tüm kullanımların önüne belirteç myTypes: eklenerek erişilen yeni bir XAML ad alanını tanımlar.
Xmlns tanımı, ön ek adlandırmanın yanı sıra bir değer de içerir. Değer, eşittir işaretinden sonra tırnak işaretlerinin içine yazılan bir dizedir. Yaygın bir XML kuralı, benzersizlik ve tanımlama kuralı olması için XML ad alanını tekdüzen Kaynak Tanımlayıcısı (URI) ile ilişkilendirmektir. Varsayılan XAML ad alanı ve XAML dili XAML ad alanının yanı sıra Windows Çalışma Zamanı XAML tarafından kullanılan daha az kullanılan bazı XAML ad alanları için de bu kuralı görürsünüz. Ancak özel türleri eşleyen bir XAML ad alanı için URI belirtmek yerine ön ek tanımını "using:" belirteci ile başlatırsınız. "using:" belirtecini izleyerek kod ad alanını adlandırın.
Örneğin, bir "CustomClasses" ad alanına başvurmanızı sağlayan bir "custom1" ön ekini eşlemek ve bu ad alanındaki veya derlemedeki sınıfları XAML'de nesne öğeleri olarak kullanmak için, XAML sayfanız kök öğede aşağıdaki eşlemeyi içermelidir: xmlns:custom1="using:CustomClasses"
Aynı sayfa kapsamındaki kısmi sınıfların eşlenmesi gerekmez. Örneğin, sayfanızın XAML kullanıcı arabirimi tanımından olayları işlemek için tanımladığınız olay işleyicilerine başvurmak için ön ek gerekmez. Ayrıca, Visual Studio'dan oluşturulan Windows Çalışma Zamanı uygulamasına ait başlangıç XAML sayfalarının çoğu, proje tarafından belirtilen varsayılan ad alanına ve kısmi sınıf tanımlarında kullanılan ad alanına referans veren "local:" ön ekini zaten eşler.
CLR dil kuralları
Yedekleme kodunuzu bir .NET dilinde (C# veya Microsoft Visual Basic) yazıyorsanız, kod ad alanlarının kavramsal hiyerarşisini oluşturmak için ad alanı adlarının bir parçası olarak nokta (".") kullanan kuralları kullanıyor olabilirsiniz. Ad alanı tanımınız bir nokta içeriyorsa, nokta "using:" belirtecinin ardından belirttiğiniz değerin bir parçası olmalıdır.
Arka planda kod oluşturma dosyanız veya kod tanımı dosyanız bir C++ dosyasıysa, XAML söz diziminde fark olmaması için ortak dil çalışma zamanı (CLR) dil formunu takip eden bazı kurallar vardır. C++ dilinde iç içe ad alanları bildirirseniz, "using:" belirtecinden sonra gelen değeri belirttiğinizde ardışık iç içe ad alanı dizeleri arasındaki ayırıcı "::" yerine "." olmalıdır.
Kodunuzu XAML ile kullanmak üzere tanımlarken iç içe geçmiş türler (örneğin, bir sınıfın içindeki bir numaralandırmayı iç içe yerleştirme) kullanmayın. İç içe türler değerlendirilemez. XAML ayrıştırıcısının bir noktanın ad alanı adının bir parçası mı yoksa iç içe tür adının bir parçası mı olduğunu ayırt etmesinin bir yolu yoktur.
Özel türler ve derlemeler
Bir XAML ad alanı için yedekleme türlerini tanımlayan derlemenin adı eşlemede belirtilmez. Derlemelerin kullanılabildiği mantık, uygulama tanımı düzeyinde denetlenerek temel uygulama dağıtım ve güvenlik ilkelerinin bir parçasıdır. Proje ayarlarında bağımlı derleme olarak XAML için kod tanımı kaynağı olarak eklenmesini istediğiniz tüm derlemeleri bildirin. Daha fazla bilgi için bkz. C# ve Visual Basic'te Windows Çalışma Zamanı bileşenleri oluşturma.
Birincil uygulamanın uygulama tanımından veya sayfa tanımlarından özel türlere başvuruyorsanız, bu türler daha fazla bağımlı derleme yapılandırması olmadan kullanılabilir, ancak yine de bu türleri içeren kod ad alanını eşlemeniz gerekir. Yaygın bir kural, belirli bir XAML sayfasının varsayılan kod ad alanı için "yerel" ön ekini eşlemektir. Bu kural genellikle XAML projeleri için proje şablonlarını başlatmaya dahil edilir.
Ekli özellikler
Ekli özelliklere başvuruyorsanız, ekli özellik adındaki sahip türü bölümü varsayılan XAML ad alanında olmalı veya bir ön ek eklenerek belirtilmelidir. Özniteliklere öğelerinden ayrı olarak önek getirmek nadirdir, ancak bu, özellikle özel bir iliştirilmiş özellik için bazen gerekli olduğu durumlardan biridir. Daha fazla bilgi için bkz . Özel ekli özellikler.
İlgili konular
Windows developer