Mapping di spazi dei nomi XAML e dello spazio dei nomiXAML namespaces and namespace mapping

Questo argomento illustra i mapping dello spazio dei nomi XML/XAML (xmlns) disponibili nell’elemento radice della maggior parte dei file XAML.This topic explains the XML/XAML namespace (xmlns) mappings as found in the root element of most XAML files. Viene inoltre descritto come creare mapping simili per tipi e assembly personalizzati.It also describes how to produce similar mappings for custom types and assemblies.

Correlazione tra spazi dei nomi XAML e librerie di tipi e definizioni di codiciHow XAML namespaces relate to code definition and type libraries

Sia in ambito generale che nell'applicazione specifica alla programmazione di app di Windows Runtime, il linguaggio XAML viene usato per dichiarare gli oggetti, le proprietà degli oggetti e le relazioni proprietà-oggetto espresse come gerarchie.Both in its general purpose and for its application to Windows Runtime app programming, XAML is used to declare objects, properties of those objects, and object-property relationships expressed as hierarchies. Gli oggetti dichiarati in XAML sono supportati da librerie dei tipi o altre rappresentazioni definite da altri linguaggi e tecniche di programmazione.The objects you declare in XAML are backed by type libraries or other representations that are defined by other programming techniques and languages. Queste librerie possono essere:These libraries might be:

  • L'insieme di oggetti incorporato per Windows Runtime.The built-in set of objects for the Windows Runtime. Un insieme di oggetti fisso; l'accesso a questi oggetti dal codice XAML si basa sulla logica interna di mapping del tipo e attivazione.This is a fixed set of objects, and accessing these objects from XAML uses internal type-mapping and activation logic.
  • Le librerie distribuite fornite da Microsoft o da terze parti.Distributed libraries that are provided either by Microsoft or by third parties.
  • Librerie che rappresentano la definizione di un controllo di terze parti incorporato dalla tua app e ridistribuito dal tuo pacchetto.Libraries that represent the definition of a third-party control that your app incorporates and your package redistributes.
  • La libreria personalizzata, creata nell'ambito del tuo progetto, che contiene una parte o tutto il codice utente.Your own library, which is part of your project and which holds some or all of your user code definitions.

Le informazioni del tipo di supporto sono associate a definizioni dello spazio dei nomi XAML specifiche.Backing type info is associated with particular XAML namespace definitions. I framework XAML, come Windows Runtime, possono aggregare più assembly e spazi dei nomi del codice per eseguire il mapping con un singolo spazio dei nomi XAML.XAML frameworks such as the Windows Runtime can aggregate multiple assemblies and multiple code namespaces to map to a single XAML namespace. In questo modo si crea un vocabolario XAML che copre una tecnologia o un framework di programmazione più ampio.This enables the concept of a XAML vocabulary that covers a larger programming framework or technology. Un vocabolario XAML può avere dimensioni molto grandi. Ad esempio, buona parte del codice XAML documentato per le app di Windows Runtime in questo articolo di riferimento costituisce un singolo vocabolario XAML.A XAML vocabulary can be quite extensive—for example, most of the XAML documented for Windows Runtime apps in this reference constitutes a single XAML vocabulary. I vocabolari XAML sono inoltre estendibili. Puoi aggiungere tipi alle definizioni del codice di supporto, assicurandoti di includere tali tipi negli spazi dei nomi del codice che vengono già usati come origini degli spazi dei nomi mappati per il vocabolario XAML.A XAML vocabulary is also extensible: you extend it by adding types to the backing code definitions, making sure to include the types in code namespaces that are already used as mapped namespace sources for the XAML vocabulary.

Un processore XAML può cercare tipi e membri negli assembly di supporto associati a uno spazio dei nomi XAML specifico quando crea una rappresentazione dell'oggetto in fase di esecuzione.A XAML processor can look up types and members from the backing assemblies associated with that XAML namespace when it creates a run-time object representation. Questo è il motivo per cui XAML è utile come metodo per formalizzare e scambiare definizioni di comportamento di costruzione di oggetti e perché XAML viene usato come tecnica di definizione dell'interfaccia utente per un'app UWP.This is why XAML is useful as a way to formalize and exchange definitions of object-construction behavior, and why XAML is used as a UI definition technique for a UWP app.

Spazi dei nomi XAML nella sintassi del markup XAML tipicaXAML namespaces in typical XAML markup usage

Un file XAML dichiara quasi sempre uno spazio dei nomi XAML predefinito nel relativo elemento radice.A XAML file almost always declares a default XAML namespace in its root element. Lo spazio dei nomi XAML predefinito definisce gli elementi che puoi dichiarare senza qualificarli tramite un prefisso.The default XAML namespace defines which elements you can declare without qualifying them by a prefix. Se, ad esempio, dichiari un elemento <Balloon />, un parser XAML si aspetterà che sia presente un elemento Balloon valido nello spazio dei nomi XAML predefinito.For example, if you declare an element <Balloon />, a XAML parser will expect that an element Balloon exists and is valid in the default XAML namespace. Al contrario, se l’elemento Balloon non è presente nello spazio dei nomi XAML predefinito, devi qualificare il nome dell’elemento usando un prefisso, ad esempio <party:Balloon />.In contrast, if Balloon is not in the defined default XAML namespace, you must instead qualify that element name with a prefix, for example <party:Balloon />. Il prefisso indica che l’elemento esiste in uno spazio dei nomi XAML diverso da quello predefinito e pertanto, prima di poterlo usare, devi eseguire il mapping di uno spazio dei nomi XAML con il prefisso party.The prefix indicates that the element exists in a different XAML namespace than the default namespace, and you must map a XAML namespace to the prefix party before you can use this element. Gli spazi dei nomi XAML si applicano all'elemento specifico in cui sono dichiarati e a qualsiasi altro elemento contenuto da tale elemento nella struttura XAML.XAML namespaces apply to the specific element on which they are declared, and also to any element that is contained by that element in the XAML structure. Per questo motivo, gli spazi dei nomi XAML sono quasi sempre dichiarati negli elementi radice di un file XAML per usufruire dell'ereditarietà.For this reason, XAML namespaces are almost always declared on root elements of a XAML file to take advantage of this inheritance.

Dichiarazioni dello spazio dei nomi XAML predefinito e del linguaggio XAMLThe default and XAML language XAML namespace declarations

All'interno dell'elemento radice di gran parte dei file XAML sono presenti due dichiarazioni xmlns.Within the root element of most XAML files, there are two xmlns declarations. La prima dichiarazione esegue il mapping di uno spazio dei nomi XAML come valore predefinito: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"The first declaration maps a XAML namespace as the default: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

Si tratta dello stesso identificatore dello spazio dei nomi XAML usato in numerose tecnologie Microsoft precedenti che usano XAML come formato di markup per la definizione dell'interfaccia utente.This is the same XAML namespace identifier used in several predecessor Microsoft technologies that also use XAML as a UI definition markup format. L'uso dello stesso identificatore è intenzionale ed è utile quando devi eseguire la migrazione dell'interfaccia utente definita in precedenza verso un'app di Windows Runtime scritta in C++, C# o Visual Basic.The use of the same identifier is deliberate, and is helpful when you migrate previously defined UI to a Windows Runtime app using C++, C#, or Visual Basic.

La seconda dichiarazione esegue il mapping di uno spazio dei nomi XAML separato per gli elementi del linguaggio definiti da XAML, eseguendone il mapping (in genere) al prefisso "x:": xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"The second declaration maps a separate XAML namespace for the XAML-defined language elements, mapping it (typically) to the "x:" prefix: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Questo valore xmlns, insieme al prefisso "x:" a cui è mappato, è identico alle definizioni usate in varie tecnologie Microsoft precedenti che usano XAML.This xmlns value, and the "x:" prefix it is mapped to, is also identical to the definitions used in several predecessor Microsoft technologies that use XAML.

Il rapporto tra queste dichiarazioni è che XAML è una definizione di linguaggio e Windows Runtime è un'implementazione che usa XAML come linguaggio e definisce un vocabolario specifico contenente i tipi a cui si fa riferimento in XAML.The relationship between these declarations is that XAML is a language definition, and the Windows Runtime is one implementation that uses XAML as a language and defines a specific vocabulary where its types are referenced in XAML.

Il linguaggio XAML specifica determinati elementi del linguaggio e ognuno di essi deve essere accessibile mediante implementazioni del processore XAML nello spazio dei nomi XAML.The XAML language specifies certain language elements, and each of these should be accessible through XAML processor implementations working against the XAML namespace. La convenzione di mapping "x:" per lo spazio dei nomi XAML del linguaggio XAML è seguita da modelli di progetto, codice di esempio e dalla documentazione relativa alle funzionalità del linguaggio.The "x:" mapping convention for the XAML language XAML namespace is followed by project templates, sample code, and the documentation for language features. Lo spazio dei nomi del linguaggio XAML definisce numerose funzionalità usate di frequente necessarie anche per le app di Windows Runtime di base scritte in C++, C# o Visual Basic.The XAML language namespace defines several commonly used features that are necessary even for basic Windows Runtime apps using C++, C#, or Visual Basic. Ad esempio, per unire code-behind a un file XAML tramite una classe parziale, devi denominare tale classe come attributo x:Class nell’elemento radice del file XAML appropriato.For example, to join any code-behind to a XAML file through a partial class, you must name that class as the x:Class attribute in the root element of the relevant XAML file. In alternativa, per qualsiasi elemento definito in una pagina XAML come risorsa con chiave nei riferimenti a ResourceDictionary e risorse XAML deve essere impostato un attributo x:Key per l’elemento oggetto in questione.Or, any element as defined in a XAML page as a keyed resource in a ResourceDictionary and XAML resource references must have the x:Key attribute set on the object element in question.

Spazi dei nomi del codice mappati allo spazio dei nomi XAML predefinitoCode namespaces that map to the default XAML namespace

Folowing è un elenco di spazi dei nomi del codice di cui è attualmente stato eseguito il mapping allo spazio dei nomi XAML predefinito.The folowing is a list of code namespaces that are currently mapped to the default XAML namespace.

  • Windows.UIWindows.UI
  • Windows.UI.XamlWindows.UI.Xaml
  • Windows.UI.Xaml.AutomationWindows.UI.Xaml.Automation
  • Windows.UI.Xaml.Automation.PeersWindows.UI.Xaml.Automation.Peers
  • Windows.UI.Xaml.Automation.ProviderWindows.UI.Xaml.Automation.Provider
  • Windows.UI.Xaml.Automation.TextWindows.UI.Xaml.Automation.Text
  • Windows.UI.Xaml.ControlsWindows.UI.Xaml.Controls
  • Windows.UI.Xaml.Controls.PrimitivesWindows.UI.Xaml.Controls.Primitives
  • Windows.UI.Xaml.DataWindows.UI.Xaml.Data
  • Windows.UI.Xaml.DocumentsWindows.UI.Xaml.Documents
  • Windows.UI.Xaml.InputWindows.UI.Xaml.Input
  • Windows.UI.Xaml.InteropWindows.UI.Xaml.Interop
  • Windows.UI.Xaml.MarkupWindows.UI.Xaml.Markup
  • Windows.UI.Xaml.MediaWindows.UI.Xaml.Media
  • Windows.UI.Xaml.Media.AnimationWindows.UI.Xaml.Media.Animation
  • Windows.UI.Xaml.Media.ImagingWindows.UI.Xaml.Media.Imaging
  • Windows.UI.Xaml.Media.Media3DWindows.UI.Xaml.Media.Media3D
  • Windows.UI.Xaml.NavigationWindows.UI.Xaml.Navigation
  • Windows.UI.Xaml.ResourcesWindows.UI.Xaml.Resources
  • Windows.UI.Xaml.ShapesWindows.UI.Xaml.Shapes
  • Windows. UI. XAML. ThreadingWindows.UI.Xaml.Threading
  • Windows.UI.TextWindows.UI.Text

Altri spazi dei nomi XAMLOther XAML namespaces

Oltre allo spazio dei nomi predefinito e allo spazio dei nomi XAML del linguaggio XAML "x:", è possibile che siano presenti altri spazi dei nomi XAML mappati nel linguaggio XAML predefinito iniziale per le app, in base a quanto generato da Microsoft Visual Studio.In addition to the default namespace and the XAML language XAML namespace "x:", you may also see other mapped XAML namespaces in the initial default XAML for apps as generated by Microsoft Visual Studio.

d: ( http://schemas.microsoft.com/expression/blend/2008 )d: (http://schemas.microsoft.com/expression/blend/2008)

Lo spazio dei nomi XAML "d:" è concepito per il supporto della finestra di progettazione, in particolare nelle aree di progettazione XAML di Microsoft Visual Studio.The "d:" XAML namespace is intended for designer support, specifically designer support in the XAML design surfaces of Microsoft Visual Studio. Lo spazio dei nomi XAML"d:" abilita gli attributi di progettazione o in fase di progettazione per gli elementi XAML.The" d:" XAML namespace enables designer or design-time attributes on XAML elements. Tali attributi di progettazione interessano solo gli aspetti di progettazione relativi al comportamento di XAML.These designer attributes affect only the design aspects of how XAML behaves. Gli attributi di progettazione vengono ignorati quando lo stesso codice XAML viene caricato dal parser XAML di Windows Runtime durante l'esecuzione di un'applicazione.The designer attributes are ignored when the same XAML is loaded by the Windows Runtime XAML parser when an app runs. In genere gli attributi di progettazione sono validi su qualsiasi elemento XAML, ma in pratica solo in alcuni scenari è appropriato che lo sviluppatore applichi un attributo di progettazione.Generally, the designer attributes are valid on any XAML element, but in practice there are only certain scenarios where applying a designer attribute yourself is appropriate. In particolare, molti attributi di progettazione sono concepiti per offrire un'esperienza ottimizzata per l'interazione con i contesti dei dati e le origini dati durante lo sviluppo di XAML e codice che usano il data binding.In particular, many of the designer attributes are intended to provide a better experience for interacting with data contexts and data sources while you are developing XAML and code that use data binding.

  • Attributi d:DesignHeight e d:DesignWidth: questi attributi vengono talvolta applicati alla radice di un file XAML creato da Visual Studio o da un’altra area di progettazione XAML.d:DesignHeight and d:DesignWidth attributes: These attributes are sometimes applied to the root of a XAML file that Visual Studio or another XAML designer surface creates for you. Ad esempio, questi attributi vengono impostati sulla radice UserControl del file XAML che viene creato quando aggiungi un nuovo oggetto UserControl al progetto di app.For example, these attributes are set on the UserControl root of the XAML that is created if you add a new UserControl to your app project. Tali attributi semplificano la progettazione della composizione del contenuto XAML, fornendo un'anticipazione dei vincoli di layout che potrebbero esistere dopo l'uso del contenuto XAML per un'istanza del controllo o per un'altra parte di una pagina più ampia dell'interfaccia utente.These attributes make it easier to design the composition of the XAML content, so that you have some anticipation of the layout constraints that might exist once that XAML content is used for a control instance or other part of a larger UI page.

Nota    Se si esegue la migrazione di XAML da Microsoft Silverlight, questi attributi potrebbero essere presenti negli elementi radice che rappresentano un'intera pagina dell'interfaccia utente.Note  If you are migrating XAML from Microsoft Silverlight you might have these attributes on root elements that represent an entire UI page. In questo caso potresti dover rimuovere gli attributi.You might want to remove the attributes in this case. Per la progettazione di layout di pagina che gestiscono correttamente il ridimensionamento e gli stati di visualizzazione, risultano probabilmente più utili altre funzionalità delle finestre di progettazione XAML, come il simulatore, rispetto a un layout di pagina con dimensioni fisse che usa d:DesignHeight e d:DesignWidth.Other features of the XAML designers such as the simulator are probably more useful for designing page layouts that handle scaling and view states well than is a fixed size page layout using d:DesignHeight and d:DesignWidth.

  • Attributo d:DataContext: puoi impostare questo attributo sulla radice di una pagina o su un controllo per eseguire l’override di qualsiasi oggetto DataContext esplicito o ereditato che altrimenti verrebbe usato dall’oggetto.d:DataContext attribute: You can set this attribute on a page root or a control to override any explicit or inherited DataContext that object otherwise has.
  • Attributo d:DesignSource: specifica un’origine dati della fase di progettazione per un oggetto CollectionViewSource, eseguendo l’override di Source.d:DesignSource attribute: Specifies a design-time data source for a CollectionViewSource, overriding Source.
  • Estensioni di markup d:DesignInstance e d:DesignData: vengono usate per fornire risorse di dati della fase di progettazione per d:DataContext o d:DesignSource.d:DesignInstance and d:DesignData markup extensions: These markup extensions are used to provide the design-time data resources for either d:DataContext or d:DesignSource. L'uso delle risorse di dati della fase di progettazione non viene documentato in modo esaustivo in questo argomento.We won't fully document how to use design-time data resources here. Per altre info, vedi Attributi della fase di progettazione.For more info, see Design-Time Attributes. Per alcuni esempi di utilizzo, vedi Dati di esempio nell'area di progettazione e per la creazione di prototipi.For some usage examples, see Sample data on the design surface, and for prototyping.

MC: ( http://schemas.openxmlformats.org/markup-compatibility/2006 )mc: (http://schemas.openxmlformats.org/markup-compatibility/2006)

" mc:" indica e supporta una modalità di compatibilità del markup per la lettura di XAML." mc:" indicates and supports a markup compatibility mode for reading XAML. In genere il prefisso "d:" è associato all’attributo mc:Ignorable.Typically, the "d:" prefix is associated with the attribute mc:Ignorable. Questa tecnica consente ai parser XAML in fase di esecuzione di ignorare gli attributi di progettazione in "d:".This technique enables run-time XAML parsers to ignore the design attributes in "d:".

local: e common:local: and common:

"local:" è un prefisso di cui è spesso stato eseguito il mapping all'interno delle pagine XAML per un progetto di app UWP basato su modelli."local:" is a prefix that is often mapped for you within the XAML pages for a templated UWP app project. Viene mappato per fare riferimento allo stesso spazio dei nomi creato per contenere l’x:Class attribute e il codice per tutti i file XAML, incluso app.xaml.It's mapped to refer to the same namespace that's created to contain the x:Class attribute and code for all the XAML files including app.xaml. Mentre definisci eventuali classi personalizzate da usare in XAML in questo spazio dei nomi, potrai usare il prefisso local: per fare riferimento ai tuoi tipi personalizzati in XAML.So long as you define any custom classes you want to use in XAML in this same namespace, you can use the local: prefix to refer to your custom types in XAML. Un prefisso correlato che deriva da un progetto di app UWP basato su modelli è comune:.A related prefix that comes from a templated UWP app project is common:. Questo prefisso fa riferimento a uno spazio dei nomi "Common" nidificato che contiene classi di utilità, come convertitori e comandi. Puoi trovare le definizioni nella cartella Common nella visualizzazione Esplora soluzioni.This prefix refers to a nested "Common" namespace that contains utility classes such as converters and commands, and you can find the definitions in the Common folder in the Solution Explorer view.

vsm:vsm:

Non usare.Do not use. "vsm:" è un prefisso talvolta presente nei modelli di XAML precedenti importati da altre tecnologie Microsoft."vsm:" is a prefix that is sometimes seen in older XAML templates imported from other Microsoft technologies. Lo spazio dei nomi in origine risolveva un problema relativo agli strumenti dello spazio dei nomi legacy.The namespace originally addressed a legacy namespace tooling issue. È consigliabile eliminare le definizioni dello spazio dei nomi XAML per "vsm:" in qualsiasi XAML usato per la Windows Runtime e modificare gli utilizzi di prefisso per VisualState, VisualStateGroup e gli oggetti correlati per usare invece lo spazio dei nomi XAML predefinito.You should delete XAML namespace definitions for "vsm:" in any XAML you use for the Windows Runtime, and change any prefix usages for VisualState, VisualStateGroup and related objects to use the default XAML namespace instead. Per altre informazioni sulla migrazione del codice XAML, vedi Migrazione di codice/XAML Silverlight o WPF in un’app di Windows Runtime.For more info on XAML migration, see Migrating Silverlight or WPF XAML/code to a Windows Runtime app.

Mapping dei tipi personalizzati con gli spazi dei nomi e con i prefissi XAMLMapping custom types to XAML namespaces and prefixes

Puoi eseguire il mapping di uno spazio dei nomi XAML per usare XAML per accedere ai tuoi tipi personalizzati.You can map a XAML namespace so that you can use XAML to access your own custom types. In altre parole, si tratta di eseguire il mapping di uno spazio dei nomi del codice così come esiste in una rappresentazione di codice che definisce il tipo personalizzato e assegnargli uno spazio dei nomi XAML unitamente a un prefisso per la sintassi.In other words, you are mapping a code namespace as it exists in a code representation that defines the custom type, and assigning it a XAML namespace along with a prefix for usage. I tipi personalizzati per XAML possono essere definiti in un linguaggio Microsoft .NET (C# o Microsoft Visual Basic) o in C++.Custom types for XAML can be defined either in a Microsoft .NET language (C# or Microsoft Visual Basic) or in C++. Il mapping viene eseguito mediante la definizione di un prefisso xmlns.The mapping is made by defining an xmlns prefix. Ad esempio, xmlns:myTypes definisce un nuovo spazio dei nomi XAML a cui si accede mediante l’aggiunta di un prefisso a tutte le sintassi con il token myTypes:.For example, xmlns:myTypes defines a new XAML namespace that is accessed by prefixing all usages with the token myTypes:.

Una definizione xmlns include un valore e una denominazione di prefisso.An xmlns definition includes a value as well as the prefix naming. Il valore è una stringa racchiusa tra virgolette, che segue un segno di uguale.The value is a string that goes inside quotation marks, following an equal sign. Una convenzione XML comune prevede l'associazione dello spazio dei nomi XML con un URI (Uniform Resource Identifier), in modo da adottare una convenzione per l'univocità e l'identificazione.A common XML convention is to associate the XML namespace with a Uniform Resource Identifier (URI), so that there is a convention for uniqueness and identification. Questa convenzione viene usata anche per lo spazio dei nomi XAML predefinito, lo spazio dei nomi XAML del linguaggio XAML e per spazi dei nomi XAML di uso meno frequente usati dal linguaggio XAML di Windows Runtime.You also see this convention for the default XAML namespace and the XAML language XAML namespace, as well as for some lesser-used XAML namespaces that are used by Windows Runtime XAML. Per uno spazio dei nomi XAML che esegue il mapping con i tipi personalizzati, tuttavia, invece di specificare un URI è opportuno far iniziare la definizione di prefisso con il token "using:".But for a XAML namespace that maps custom types, instead of specifying a URI, you begin the prefix definition with the token "using:". Dopo il token "using:", devi denominare lo spazio dei nomi del codice.Following the "using:" token, you then name the code namespace.

Ad esempio, per eseguire il mapping di un prefisso "Personalizzata1" che consente di fare riferimento a uno spazio dei nomi "CustomClasses" e di usare le classi di tale spazio dei nomi o assembly come elementi oggetto in XAML, la pagina XAML deve includere il mapping seguente nell'elemento radice: xmlns:custom1="using:CustomClasses"For example, to map a "custom1" prefix that enables you to reference a "CustomClasses" namespace, and use classes from that namespace or assembly as object elements in XAML, your XAML page should include the following mapping on the root element: xmlns:custom1="using:CustomClasses"

Non è necessario eseguire il mapping di classi parziali dello stesso ambito di pagina.Partial classes of the same page scope do not need to be mapped. Ad esempio, non sono necessari prefissi per fare riferimento a gestori di eventi definiti per la gestione di eventi dalla definizione dell'interfaccia utente del linguaggio XAML della tua pagina.For example, you don't need prefixes to reference any event handlers that you defined for handling events from the XAML UI definition of your page. Molte delle pagine XAML iniziali di progetti generati con Visual Studio per un'app di Windows Runtime scritta in C++, C# o Visual Basic, inoltre, eseguono già il mapping di un prefisso "local:" che fa riferimento allo spazio dei nomi predefinito specificato per il progetto e allo spazio dei nomi usato da definizioni di classi parziali.Also, many of the starting XAML pages from Visual Studio generated projects for a Windows Runtime app using C++, C#, or Visual Basic already map a "local:" prefix, which references the project-specified default namespace and the namespace used by partial class definitions.

Regole del linguaggio CLRCLR language rules

Se stai scrivendo il codice di supporto in un linguaggio .NET (C# o Microsoft Visual Basic), è possibile che tu stia usando convenzioni che prevedono un punto (".") nei nomi degli spazi dei nomi al fine di creare una gerarchia concettuale degli spazi dei nomi del codice.If you are writing your backing code in a .NET language (C# or Microsoft Visual Basic), you might be using conventions that use a dot (".") as part of namespace names to create a conceptual hierarchy of code namespaces. Se la tua definizione dello spazio dei nomi contiene un punto, tale punto deve essere incluso nel valore che specifichi dopo il token "using:".If your namespace definition contains a dot, the dot should be part of the value you specify after the "using:" token.

Se il tuo file code-behind o il tuo file di definizione del codice è un file C++, ci sono alcune convenzioni che seguono comunque il formato del linguaggio CLR (Common Language Runtime), pertanto non vi è alcuna differenza nella sintassi XAML.If your code-behind file or code definition file is a C++ file, there are certain conventions that still follow the common language runtime (CLR) language form, so that there is no difference in the XAML syntax. Se dichiari spazi dei nomi nidificati in C++, il separatore tra le stringhe degli spazi dei nomi nidificati successivi deve essere ".", e non "::", quando specifichi il valore che segue il token "using:".If you declare nested namespaces in C++, the separator between the successive nested namespace strings should be "." rather than "::" when you specify the value that follows the "using:" token.

Non usare tipi nidificati per la definizione del codice per l'uso con XAML, ad esempio nidificando un'enumerazione all'interno di una classe.Don't use nested types (such as nesting an enumeration within a class) when you define your code for use with XAML. I tipi nidificati non possono essere valutati.Nested types can't be evaluated. Il parser XAML non ha alcun modo per distinguere un punto che fa parte del nome di tipo nidificato o che fa parte del nome dello spazio dei nomi.There's no way for the XAML parser to distinguish that a dot is part of the nested type name rather than part of the namespace name.

Tipi e assembly personalizzatiCustom types and assemblies

Il nome dell'assembly che definisce i tipi di supporto per uno spazio dei nomi XAML non viene specificato nel mapping.The name of the assembly that defines the backing types for a XAML namespace is not specified in the mapping. La logica in base alla quale gli assembly sono disponibili è controllata a livello di definizione dell'app e fa parte dei principi basilari di sviluppo e sicurezza dell'app.The logic for which assemblies are available is controlled at the app-definition level and is part of basic app deployment and security principles. Ogni assembly che vuoi includere come origine della definizione del codice per il codice XAML deve essere dichiarato come assembly dipendente nelle impostazioni del progetto.Declare any assembly that you want included as a code-definition source for XAML as a dependent assembly in project settings. Per altre info, vedi Creazione di componenti Windows Runtime in C# e Visual Basic.For more info, see Creating Windows Runtime components in C# and Visual Basic.

Se fai riferimento ai tipi personalizzati dalla definizione dell'applicazione dell'app principale o dalle definizioni di pagina, tali tipi sono disponibili senza ulteriori configurazioni dell'assembly dipendente, ma devi comunque eseguire il mapping dello spazio dei nomi del codice contenente tali tipi.If you are referencing custom types from the primary app's application definition or page definitions, those types are available without further dependent assembly configuration, but you still must map the code namespace that contains those types. Una convenzione comune prevede il mapping del prefisso "local" per lo spazio dei nomi del codice predefinito di qualsiasi pagina XAML specifica.A common convention is to map the prefix "local" for the default code namespace of any given XAML page. Questa convenzione è spesso inclusa nei modelli di progetto iniziali per i progetti XAML.This convention is often included in starting project templates for XAML projects.

Proprietà associateAttached properties

Se fai riferimento a proprietà associate, la parte del tipo di proprietario del nome della proprietà associata deve essere nello spazio di nomi XAML predefinito o dotato di prefisso.If you are referencing attached properties, the owner-type portion of the attached property name must either be in the default XAML namespace or be prefixed. È raro dover usare prefissi per gli attributi separatamente dai rispettivi elementi, ma questo è uno dei casi in cui è a volte necessario, in particolare per una proprietà associata personalizzata.It's rare to prefix attributes separately from their elements but this is one case where it's sometimes required, particularly for a custom attached property. Per altre info, vedi Proprietà associate personalizzate.For more info, see Custom attached properties.