Namespaces XAML e mapeamento de namespaceXAML namespaces and namespace mapping

Este tópico explica os mapeamentos dexmlns(namespace XML/XAML) como encontrados no elemento raiz da maioria dos arquivos XAML.This topic explains the XML/XAML namespace (xmlns) mappings as found in the root element of most XAML files. Descreve também como produzir mapeamentos similares para tipos e assemblies personalizados.It also describes how to produce similar mappings for custom types and assemblies.

Como os namespaces XAML se relacionam a definição de código e bibliotecas de tiposHow XAML namespaces relate to code definition and type libraries

Em termos de finalidade geral e aplicação na programação de aplicativos do Tempo de Execução do Windows, o XAML é usado para declarar objetos, propriedades desses objetos e relações entre objeto e propriedade expressas como hierarquias.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. Os objetos declarados no XAML são auxiliados pelas bibliotecas de tipos ou outras representações definidas por outras técnicas e linguagens de programação.The objects you declare in XAML are backed by type libraries or other representations that are defined by other programming techniques and languages. Essas bibliotecas podem ser:These libraries might be:

  • O conjunto de objetos interno do Tempo de Execução do Windows.The built-in set of objects for the Windows Runtime. Trata-se de um conjunto fixo de objetos, e o acesso a esses objetos a partir do XAML usa a lógica de ativação e o mapeamento de tipos interno.This is a fixed set of objects, and accessing these objects from XAML uses internal type-mapping and activation logic.
  • Bibliotecas distribuídas que são fornecidas pela Microsoft ou por terceiros.Distributed libraries that are provided either by Microsoft or by third parties.
  • Bibliotecas que representam a definição de um controle de terceiros que o seu aplicativo incorpora e o pacote redistribui.Libraries that represent the definition of a third-party control that your app incorporates and your package redistributes.
  • Sua própria biblioteca, que faz parte de seu projeto e contém algumas ou todas as definições de seu código de usuário.Your own library, which is part of your project and which holds some or all of your user code definitions.

As informações de tipo de suporte são associadas a determinadas funções do namespace XAML.Backing type info is associated with particular XAML namespace definitions. Estruturas XAML, como o Windows Runtime, podem agregar vários assemblies e diversos namespaces de código para o mapeamento para um único namespace XAML.XAML frameworks such as the Windows Runtime can aggregate multiple assemblies and multiple code namespaces to map to a single XAML namespace. Isso possibilita o conceito de um vocabulário XAML abrangendo uma tecnologia ou estrutura de programação maior.This enables the concept of a XAML vocabulary that covers a larger programming framework or technology. Um vocabulário XAML pode ser bastante extensivo por exemplo, a maior parte do XAML documentado para aplicativos do Windows Runtime nessa referência constitui um único vocabulário 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. Um vocabulário XAML também é extensível: você o amplia adicionando tipos às definições de código de suporte, garantindo a inclusão dos tipos nos namespaces de código já usados como fontes de namespaces mapeadas do vocabulário 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.

Um processador XAML pode examinar tipos e membros nos assemblies de suporte associados ao namespace XAML quando ele cria uma representação do objeto de tempo de execução.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. Por isso que o XAML é útil para formalizar e trocar definições de comportamento de construção de objeto e é usado como uma técnica de definição de interface do usuário em um aplicativo 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.

Namespaces XAML em uso típico de marcação XAMLXAML namespaces in typical XAML markup usage

Um arquivo XAML nem sempre declara um namespace XAML padrão no elemento raiz.A XAML file almost always declares a default XAML namespace in its root element. O namespace XAML padrão define quais elementos podem ser declarados sem qualificação via prefixo.The default XAML namespace defines which elements you can declare without qualifying them by a prefix. Por exemplo, se você declarar um elemento <Balloon />, o analisador XAML esperará até que um elemento Balloon exista e seja válido no namespace XAML padrão.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. Por outro lado, se Balloon não for definido no namespace XAML padrão, qualifique esse nome de elemento com um prefixo; por exemplo, <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 />. O prefixo indica que o elemento existe em outro namespace XAML diferente do namespace padrão e que você deve mapear um namespace XAML para o prefixo party para poder usar esse elemento.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. Os namespaces XAML se aplicam ao elemento específico em que são declarados e também a qualquer elemento contido por esse elemento na estrutura 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. Por isso, os namespaces XAML quase sempre são declarados nos elementos raiz de um arquivo XAML, para obter as vantagens dessa herança.For this reason, XAML namespaces are almost always declared on root elements of a XAML file to take advantage of this inheritance.

Declarações do namespace XAML padrão e de linguagem XAMLThe default and XAML language XAML namespace declarations

No elemento raiz da maioria dos arquivos XAML, há duas declarações de xmlns.Within the root element of most XAML files, there are two xmlns declarations. A primeira declaração mapeia um namespace XAML como o padrão: 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"

Este é o mesmo identificador de namespace XAML usado em várias tecnologias Microsoft predecessoras, que também usam XAML como um formato de marcação de definição de interface do usuário.This is the same XAML namespace identifier used in several predecessor Microsoft technologies that also use XAML as a UI definition markup format. O uso do mesmo identificador é proposital, além de ser útil quando você migra a interface do usuário definida anteriormente para um aplicativo do Tempo de Execução do Windows em C++, C# ou 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.

A segunda declaração mapeia um namespace XAML separado para os elementos de linguagem definidos pelo XAML, mapeando-o (normalmente) para o prefixo "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"

Esse valor de xmlns e o prefixo "x:" para o qual ele é mapeado também são idênticos às definições usadas em várias tecnologias anteriores da Microsoft que usam 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.

A relação entre essas declarações é que o XAML é uma definição de linguagem e o Windows Runtime é uma implementação que usa o XAML como uma linguagem e define um vocabulário específico, no qual os tipos são referenciados em 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.

A linguagem XAML especifica determinados elementos de linguagem e cada um deles deve ser acessível às implementações de processador XAML que estão trabalhando com base no namespace XAML.The XAML language specifies certain language elements, and each of these should be accessible through XAML processor implementations working against the XAML namespace. A convenção de mapeamento "x:" do namespace XAML da linguagem XAML é cumprida pelos modelos de projeto, exemplos de código e pela documentação de recursos da linguagem.The "x:" mapping convention for the XAML language XAML namespace is followed by project templates, sample code, and the documentation for language features. O namespace da linguagem XAML define vários recursos de uso comum, que são necessários até mesmo aos aplicativos básicos do Tempo de Execução do Windows em C++, C# ou 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. Por exemplo, para adicionar qualquer code-behind a um arquivo XAML por meio de uma classe parcial, você tem que nomear essa classe como o atributo x:Class no elemento raiz do arquivo XAML relevante.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. Ou então, qualquer elemento definido em uma página XAML como um recurso inserido em um ResourceDictionary e referências de recursos XAML deve ter o atributo x:Key definido no elemento de objeto em questão.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.

Namespaces de código que mapeiam para o namespace padrão XAMLCode namespaces that map to the default XAML namespace

O seguir é uma lista de namespaces de código que estão atualmente mapeados para o namespace XAML padrão.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
  • {1>{2>Windows.UI.Xaml.Data<2}<1}Windows.UI.Xaml.Data
  • Windows.UI.Xaml.DocumentsWindows.UI.Xaml.Documents
  • Windows.UI.Xaml.InputWindows.UI.Xaml.Input
  • {1>{2>Windows.UI.Xaml.Interop<2}<1}Windows.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
  • {1>{2>Windows.UI.Xaml.Media.Imaging<2}<1}Windows.UI.Xaml.Media.Imaging
  • Windows.UI.Xaml.Media.Media3DWindows.UI.Xaml.Media.Media3D
  • Windows.UI.Xaml.NavigationWindows.UI.Xaml.Navigation
  • {1>{2>Windows.UI.Xaml.Resources<2}<1}Windows.UI.Xaml.Resources
  • Windows.UI.Xaml.ShapesWindows.UI.Xaml.Shapes
  • Windows. UI. XAML. ThreadingWindows.UI.Xaml.Threading
  • {1>{2>Windows.UI.Text<2}<1}Windows.UI.Text

Outros namespaces XAMLOther XAML namespaces

Além do namespace padrão e do namespace XAML da linguagem XAML "x:", você também pode ver outros namespaces XAML mapeados no XAML padrão inicial para aplicativos, conforme gerados pelo 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)

O namespace XAML "d:" foi projetado para auxiliar o designer, especificamente nas áreas de design XAML do Microsoft Visual Studio.The "d:" XAML namespace is intended for designer support, specifically designer support in the XAML design surfaces of Microsoft Visual Studio. O namespace XAML "d:" permite atributos de designer ou de tempo de design em elementos XAML.The" d:" XAML namespace enables designer or design-time attributes on XAML elements. Esses atributos de designer afetam apenas os aspectos de design referentes ao comportamento do XAML.These designer attributes affect only the design aspects of how XAML behaves. Os atributos de designer são ignorados quando o mesmo XAML é carregado pelo analisador XAML do Tempo de Execução do Windows, durante a execução de um aplicativo.The designer attributes are ignored when the same XAML is loaded by the Windows Runtime XAML parser when an app runs. Os atributos de designer geralmente são válidos em qualquer elemento XAML, mas, na prática, há apenas alguns cenários em que a aplicação do atributo de designer é adequada.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. Em especial, muitos dos atributos de designer são projetados para fornecer uma experiência melhor de interação com os contextos e as fontes de dados, quando você desenvolve XAML e código que usam a vinculação de dados.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.

  • Atributos d:DesignHeight e d:DesignWidth: Esses atributos são, às vezes, aplicados na raiz de um arquivo XAML que o Visual Studio ou outra superfície do designer do XAML cria para você.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. Por exemplo, esses atributos são definidos na raiz do UserControl do XAML que é criado se você adiciona um novo UserControl ao seu projeto de aplicativo.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. Esses atributos facilitam a criação da composição do conteúdo XAML, por isso você tem alguma previsão das restrições de layout que podem existir depois que o conteúdo XAML é usado para uma instância de controle ou outra parte de uma página de interface do usuário maior.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.

Observação    Se você estiver migrando XAML do Microsoft Silverlight, você pode ter esses atributos em elementos raiz que representam uma página de interface do usuário inteira.Note  If you are migrating XAML from Microsoft Silverlight you might have these attributes on root elements that represent an entire UI page. Talvez você queira remover os atributos nesse caso.You might want to remove the attributes in this case. Outros recursos dos designers de XAML, como o simulador, provavelmente são mais úteis na criação de layouts de página que manipulem dimensionamento e estados de exibição do que um layout de página de tamanho fixo que 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.

  • Atributo d:DataContext: Você pode definir esse atributo em uma raiz de página ou um controle para substituir qualquer DataContext explícito ou herdado que o objeto tenha.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.
  • Atributo d:DesignSource: Especifica uma fonte de dados de tempo de design para um CollectionViewSource, substituindo Source.d:DesignSource attribute: Specifies a design-time data source for a CollectionViewSource, overriding Source.
  • Extensões de marcação d:DesignInstance e d:DesignData: Essas extensões de marcação são usadas para fornecer os recursos de dados de tempo de design para d:DataContext ou 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. Não documentamos totalmente aqui a maneira de usar os recursos de dados de tempo de design.We won't fully document how to use design-time data resources here. Para obter mais informações, consulte Atributos de tempo de design.For more info, see Design-Time Attributes. Para obter alguns exemplos de uso, consulte Dados de exemplo na área de design e para a criação de protótipo.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 dá suporte ao modo de compatibilidade de marcação para leitura de XAML." mc:" indicates and supports a markup compatibility mode for reading XAML. Normalmente, o prefixo "d:" prefix é associado ao atributo mc:Ignorable.Typically, the "d:" prefix is associated with the attribute mc:Ignorable. Essa técnica permite que os analisadores XAML de tempo de execução ignorem os atributos de design em "d:".This technique enables run-time XAML parsers to ignore the design attributes in "d:".

local: e common:local: and common:

"local:" é um prefixo que geralmente é mapeado para você nas páginas XAML para um projeto modelo de aplicativo UWP."local:" is a prefix that is often mapped for you within the XAML pages for a templated UWP app project. Ele é mapeado para se referir ao mesmo namespace que é criado para conter o x:Class attribute e o código para todos os arquivos XAML, inclusive 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. Contanto que defina as classes personalizadas que deseja usar no XAML nesse mesmo namespace, você pode usar o prefixo local: para se referir aos seus tipos personalizados em 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. Um prefixo relacionado proveniente de um projeto modelo de aplicativo UWP é common:.A related prefix that comes from a templated UWP app project is common:. Esse prefixo se refere a um namespace "Common" aninhado que contém classes de utilitários, como conversores e comandos, e você pode encontrar as definições na pasta Common no modo de exibição do Gerenciador de Soluções.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:

Não use.Do not use. "vsm:" é um prefixo que, às vezes, é visto em modelos XAML antigos importados de outras tecnologias Microsoft."vsm:" is a prefix that is sometimes seen in older XAML templates imported from other Microsoft technologies. Originalmente, o namespace tratava de um problema de ferramenta de namespace herdado.The namespace originally addressed a legacy namespace tooling issue. Exclua definições de namespace XAML para "vsm:" em qualquer XAML que usar para o Windows Runtime e mude todos os usos de prefixo de VisualState, VisualStateGroup e objetos relacionados para usar o namespace XAML padrão.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. Para saber mais sobre migração de XAML, veja Migrando XAML/código do Silverlight ou WPF para um aplicativo do Tempo de Execução do Windows.For more info on XAML migration, see Migrating Silverlight or WPF XAML/code to a Windows Runtime app.

Mapeando tipos personalizados para namespaces XAML e prefixosMapping custom types to XAML namespaces and prefixes

Você pode mapear um namespace XAML para poder usar o XAML para acessar seus próprios tipos personalizados.You can map a XAML namespace so that you can use XAML to access your own custom types. Em outras palavras, você mapeia um namespace de código, da forma como ele aparece em uma representação de código que define o tipo personalizado, e o atribui a um namespace XAML juntamente com um prefixo para utilização.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. Tipos personalizados de XAML podem ser definidos em uma linguagem do Microsoft .NET (C# ou Microsoft Visual Basic) ou em C++.Custom types for XAML can be defined either in a Microsoft .NET language (C# or Microsoft Visual Basic) or in C++. O mapeamento é feito pela definição de um prefixo xmlns.The mapping is made by defining an xmlns prefix. Por exemplo, xmlns:myTypes define um novo namespace XAML que é acessado por meio da prefixação de todos os usos com o token myTypes:.For example, xmlns:myTypes defines a new XAML namespace that is accessed by prefixing all usages with the token myTypes:.

Uma definição de xmlns inclui um valor e também a nomeação do prefixo.An xmlns definition includes a value as well as the prefix naming. O valor é uma cadeia de caracteres colocada entre aspas, seguida de um sinal de igual.The value is a string that goes inside quotation marks, following an equal sign. Uma convenção XML comum é associar o namespace XML a um URI (Uniform Resource Identifier), e há uma convenção de exclusividade e identificação.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. Você também vê essa convenção no namespace XAML padrão, no namespace XAML da linguagem XAML e em alguns namespaces XAML usados com menos frequência, que são utilizados pelo XAML do Tempo de Execução do Windows.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. Entretanto, para um namespace XAML que mapeia tipos personalizados, em vez de especificar um URI, comece a definição do prefixo com o 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:". Em seguida ao token "using:", dê um nome ao namespace de código.Following the "using:" token, you then name the code namespace.

Por exemplo, para mapear um prefixo "Personalizado1" que permite referenciar um namespace "CustomClasses" e usar classes desse namespace ou assembly como elementos de objeto em XAML, sua página XAML deve incluir o seguinte mapeamento no elemento raiz: 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"

Classes parciais do mesmo escopo de página não precisam ser mapeadas.Partial classes of the same page scope do not need to be mapped. Por exemplo, prefixos não são necessários para referenciar qualquer manipulador de eventos definido para manipulação de eventos na definição da interface do usuário XAML da sua página.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. Além disso, muitas das páginas XAML iniciais de projetos gerados com o Visual Studio para um aplicativo do Windows Runtime em C++, C# ou Visual Basic já mapeiam um prefixo "local:", que menciona o namespace padrão especificado pelo projeto e o namespace usado pelas definições de classes parciais.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.

Regras da linguagem CLRCLR language rules

Se estiver escrevendo um código de suporte em uma linguagem do .NET (C# ou Microsoft Visual Basic), talvez esteja usando convenções que utilizam um ponto (".") como parte dos nomes de namespaces para criar uma hierarquia conceitual de namespaces de código.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 a definição de namespace contiver um ponto, o ponto deve fazer parte do valor especificado depois do token "using:".If your namespace definition contains a dot, the dot should be part of the value you specify after the "using:" token.

Se o arquivo code-behind ou o arquivo de definição de código for um arquivo em C++, haverá certas convenções que ainda seguem a forma de linguagem CLR (Common Language Runtime) para que não haja qualquer diferença na sintaxe 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 você declarar namespaces aninhados em C++, o separador entre as cadeias de caracteres de namespaces aninhados sucessivos deverá ser "." em vez de "::" quando você especificar o valor que vem depois do 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.

Não use tipos aninhados (como aninhar uma enumeração dentro de uma classe) ao definir o seu código para ser usado com XAML.Don't use nested types (such as nesting an enumeration within a class) when you define your code for use with XAML. Tipos aninhados não podem ser avaliados.Nested types can't be evaluated. Não é possível para o analisador XAML distinguir que um ponto faz parte do nome do tipo aninhado e não parte do nome do namespace.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.

Tipos personalizados e assembliesCustom types and assemblies

O nome do assembly que define os tipos de suporte de um namespace XAML não é especificado no mapeamento.The name of the assembly that defines the backing types for a XAML namespace is not specified in the mapping. A lógica em que assemblies estão disponíveis é controlada no nível da definição do aplicativo e faz parte dos princípios básicos de desenvolvimento e segurança do aplicativo.The logic for which assemblies are available is controlled at the app-definition level and is part of basic app deployment and security principles. Declare qualquer assembly a ser incluído como fonte de definição de código do XAML como um assembly dependente nas configurações do projeto.Declare any assembly that you want included as a code-definition source for XAML as a dependent assembly in project settings. Para saber mais, veja Criando componentes do Tempo de Execução do Windows em C# e Visual Basic.For more info, see Creating Windows Runtime components in C# and Visual Basic.

Se estiver referenciando tipos personalizados na definição do aplicativo principal ou nas definições de páginas, esses tipos serão disponibilizados sem outras configurações de assembly dependente, mas ainda será preciso mapear o namespace de código que contém esses tipos.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. Uma convenção comum é mapear o prefixo "local" para o namespace de código padrão de qualquer página XAML fornecida.A common convention is to map the prefix "local" for the default code namespace of any given XAML page. Essa convenção é frequentemente incluída nos modelos de projeto iniciais para projetos XAML.This convention is often included in starting project templates for XAML projects.

Propriedades anexadasAttached properties

Se você estiver fazendo referência a propriedades anexadas, a parte do tipo de proprietário do nome da propriedade anexada deve estar no namespace XAML padrão ou ser prefixado.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 prefixar atributos separadamente de seus elementos, mas. às vezes. é necessário para alguns casos, especialmente para uma propriedade personalizada anexada.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. Para saber mais, veja Propriedades anexadas personalizadas.For more info, see Custom attached properties.