Langage

XamlReader.Load(String) Méthode

Définition

Analyse un fragment XAML bien formé et crée une arborescence d’objets correspondante et retourne la racine de l’arborescence d’objets.

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

Paramètres

xaml
String

Platform::String

winrt::hstring

Chaîne qui contient un fragment XAML valide.

Retours

Object

Platform::Object

IInspectable

Objet racine de l’arborescence d’objets créée.

Exemples

Cet exemple crée un seul Ellipse à partir d’une chaîne XAML, appelant Load. Ensuite, il connecte l’Ellipse créé mais déconnecté à la collection Children d’un élément qui existait déjà dans l’application UWP en cours d’exécution. Enfin, l’exemple accède à nouveau à l’Ellipse à l’emplacement où il a été ajouté à l’aide d’une requête et modifie l’une de ses propriétés.

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);

Remarques

XamlReader fournit un comportement de construction d’objet qui met en parallèle la façon dont XAML est analysé par l’analyseur XAML Windows Runtime et l’utilisation de XAML pour définir l’interface utilisateur d’une application UWP. L’analyse de l’entrée XAML avec XamlReader.Load génère des arborescences d’objets d’exécution de Windows Runtime objets. L’arborescence d’objets permet de programmer sur ces objets au moment de l’exécution, en parcourant les parties de l’arborescence complète.

Il existe plusieurs concepts importants à comprendre lorsque vous créez des objets à partir de XAML avec la méthode XamlReader.Load :

  • La chaîne de contenu XAML doit définir un seul élément racine.
  • La chaîne de contenu XAML doit être du code XML bien formé, ainsi que du code XAML valide.
  • Le contenu XAML doit définir un xmlns par défaut. En règle générale, il s’agit du vocabulaire WINDOWS RUNTIME XAML, tel qu’il est identifié par http://schemas.microsoft.com/winfx/2006/xaml/presentation.
  • Tous les assemblys personnalisés référencés dans un mappage d’espace de noms XAML doivent déjà être disponibles pour l’application.
  • Le code XAML ne doit pas tenter de spécifier l’attribut x :Class ou d’inclure des attributs XAML définis pour les gestionnaires d’événements.
  • Vous ne pouvez pas utiliser FindName dans le namescope XAML général pour rechercher un objet runtime ajouté, mais vous pouvez effectuer une recherche dans le namescope XAML spécifique de l’objet créé. Pour plus d'informations, consultez les espaces de noms XAML.
  • La logique de création d’objet ne peut pas intégrer le code XAML chargé aux classes code-behind au moment de l’exécution. Si vous souhaitez ajouter des gestionnaires d’événements, vous devez le faire dans le code en référençant les objets obtenus à partir de la structure de l’arborescence d’objets du résultat load et en utilisant une syntaxe spécifique au langage pour attacher des gestionnaires (par exemple +=).
  • Il doit y avoir du contenu XAML existant ; vous ne pouvez pas remplacer l’arborescence entière du contenu. Vous devez au moins conserver l’élément racine d’origine afin que les implications du modèle d’application d’une page XAML chargée restent actives.
  • L’objet créé à partir de Load ne peut être affecté qu’à un seul emplacement dans l’arborescence d’objets principal. Si vous souhaitez ajouter des objets créés à partir de XAML identiques à différentes zones de l’arborescence d’objets principal de l’application, vous devez analyser le code XAML plusieurs fois à l’aide de la même chaîne d’entrée, en utilisant différentes destinations pour la valeur de retour.
  • L’arborescence d’objets primaire restante doit prendre en charge une propriété appropriée à définir.

S’applique à

Voir aussi