XamlReader.Load(String) Método

Definição

Analisa um fragmento XAML bem formado e cria uma árvore de objetos correspondente e retorna a raiz da árvore de objetos.

public:
 static Platform::Object ^ Load(Platform::String ^ xaml);
 static IInspectable Load(winrt::hstring const& xaml);
public static object Load(string xaml);
function load(xaml)
Public Shared Function Load (xaml As String) As Object

Parâmetros

xaml
String

Platform::String

winrt::hstring

Uma cadeia de caracteres que contém um fragmento XAML válido.

Retornos

Object

Platform::Object

IInspectable

O objeto raiz da árvore de objetos criada.

Exemplos

Este exemplo cria uma única elipse de uma cadeia de caracteres XAML, chamando Load. Em seguida, ele conecta a elipse criada, mas desconectada, à coleção Children de um elemento que já existia no aplicativo UWP em execução. Por fim, o exemplo acessa a Reticências novamente no local onde ela foi adicionada usando uma consulta e altera uma de suas propriedades.

string xaml =
"<Ellipse Name=\"EllipseAdded\" Width=\"300.5\" Height=\"200\" 
Fill=\"Red\" xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"/>";
object ellipse = XamlReader.Load(xaml);
//stackPanelRoot is the visual root of a Page in existing XAML markup already loaded by the appmodel
stackPanelRoot.Children.Add(ellipse as UIElement);
//walk the tree using XLinq result and cast back to a XAML type to set a property on it at runtime
var result = (from item in stackPanelRoot.Children
  where (item is FrameworkElement) 
  && ((FrameworkElement) item).Name == "EllipseAdded"
  select item as FrameworkElement).FirstOrDefault();
((Ellipse) result).Fill = new SolidColorBrush(Colors.Yellow);

Comentários

O XamlReader fornece um comportamento de construção de objeto que faz o paralelo de como o XAML é analisado pelo analisador XAML Windows Runtime e o uso de XAML para definir a interface do usuário de um aplicativo UWP. Analisar a entrada XAML com XamlReader.Load gera árvores de objetos em tempo de execução de objetos Windows Runtime. A árvore de objetos fornece uma maneira de programar contra esses objetos em tempo de execução, percorrendo partes da árvore completa.

Há vários conceitos que são importantes de entender, quando você cria objetos de XAML com o método XamlReader.Load:

  • A cadeia de caracteres de conteúdo XAML deve definir um único elemento raiz.
  • A cadeia de caracteres de conteúdo XAML deve ser XML bem formada, além de ser XAML válida.
  • O conteúdo XAML deve definir um xmlns padrão. Normalmente, esse é o Windows Runtime vocabulário XAML, conforme identificado por http://schemas.microsoft.com/winfx/2006/xaml/presentation.
  • Todos os assemblies personalizados referenciados em um mapeamento de namespace XAML já devem estar disponíveis para o aplicativo.
  • O XAML não deve tentar especificar o atributo x:Class ou incluir atributos definidos por XAML para manipuladores de eventos.
  • Você não pode usar FindName no namescope XAML geral para encontrar um objeto de runtime adicionado, mas pode pesquisar dentro do namescope XAML específico do objeto criado. Para obter mais informações, consulte namescopes XAML.
  • A lógica de criação de objeto não pode integrar o XAML carregado com classes code-behind em tempo de execução. Se você quiser adicionar manipuladores de eventos, deverá fazer isso no código referenciando objetos obtidos de dentro da estrutura da árvore de objetos do resultado de Carga e usando sintaxe específica do idioma para anexar manipuladores (como +=).
  • Deve haver conteúdo XAML existente; você não pode substituir toda a árvore de conteúdo. Você deve, no mínimo, preservar o elemento raiz original para que as implicações do modelo de aplicativo de uma página XAML carregada permaneçam ativas.
  • O objeto criado a partir de Load pode ser atribuído a apenas um local na árvore de objetos primária. Se você quiser adicionar objetos criados de XAML idêntico a diferentes áreas da árvore de objetos primários do aplicativo, deverá analisar o XAML várias vezes usando a mesma cadeia de caracteres de entrada, usando destinos diferentes para o valor retornado.
  • A árvore de objetos primária restante deve dar suporte a uma propriedade apropriada a ser definida.

Aplica-se a

Confira também