XamlReader.Load(String) Methode

Definition

Analysiert ein wohlgeformte XAML-Fragment und erstellt eine entsprechende Objektstruktur und gibt den Stamm der Objektstruktur zurück.

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

Parameter

xaml
String

Platform::String

winrt::hstring

Eine Zeichenfolge, die ein gültiges XAML-Fragment enthält.

Gibt zurück

Object

Platform::Object

IInspectable

Das Stammobjekt der erstellten Objektstruktur.

Beispiele

In diesem Beispiel wird eine einzelne Ellipse aus einer XAML-Zeichenfolge erstellt, die Load aufruft. Anschließend wird die erstellte, aber getrennte Ellipse mit der Children-Auflistung eines Elements verbunden, das bereits in der ausgeführten UWP-App vorhanden war. Schließlich greift das Beispiel erneut auf die Ellipse an der Stelle zu, an der sie mithilfe einer Abfrage hinzugefügt wurde, und ändert eine ihrer Eigenschaften.

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

Hinweise

XamlReader stellt das Objektkonstruktionsverhalten bereit, das parallel dazu verwendet wird, wie XAML vom Windows-Runtime XAML-Parser analysiert wird, und die Verwendung von XAML zum Definieren der Benutzeroberfläche einer UWP-App. Beim Analysieren der XAML-Eingabe mit XamlReader.Load werden Laufzeitobjektstrukturen von Windows-Runtime -Objekten generiert. Die Objektstruktur bietet eine Möglichkeit, mit diesen Objekten zur Laufzeit zu programmieren, indem Sie Teile der vollständigen Struktur durchlaufen.

Es gibt mehrere Konzepte, die zu verstehen sind, wenn Sie Objekte aus XAML mit der XamlReader.Load-Methode erstellen:

  • Die XAML-Inhaltszeichenfolge muss ein einzelnes Stammelement definieren.
  • Die XAML-Inhaltszeichenfolge muss wohlgeformte XML-Daten sein und muss gültige XAML-Code sein.
  • Der XAML-Inhalt muss einen Standard-xmlns definieren. In der Regel ist dies das Windows-Runtime XAML-Vokabular, wie durch http://schemas.microsoft.com/winfx/2006/xaml/presentationidentifiziert.
  • Alle benutzerdefinierten Assemblys, auf die in einer XAML-Namespacezuordnung verwiesen wird, müssen der Anwendung bereits zur Verfügung stehen.
  • Der XAML-Code sollte nicht versuchen, das x:Class-Attribut anzugeben oder XAML-definierte Attribute für Ereignishandler einzuschließen.
  • Sie können FindName im allgemeinen XAML-Namescope nicht verwenden, um ein hinzugefügtes Laufzeitobjekt zu finden, aber Sie können innerhalb des spezifischen XAML-Namensbereichs des erstellten Objekts suchen. Weitere Informationen finden Sie unter XAML-Namescopes.
  • Die Objekterstellungslogik kann das geladene XAML zur Laufzeit nicht in CodeBehind-Klassen integrieren. Wenn Sie Ereignishandler hinzufügen möchten, müssen Sie dies im Code tun, indem Sie auf Objekte verweisen, die aus der Objektstrukturstruktur des Load-Ergebnisses abgerufen wurden, und sprachspezifische Syntax zum Anfügen von Handlern (z +=. B. ).
  • Es muss XAML-Inhalt vorhanden sein. Sie können nicht die gesamte Struktur des Inhalts ersetzen. Sie müssen zumindest das ursprüngliche Stammelement beibehalten, damit die App-Modellauswirkungen einer geladenen XAML-Seite aktiv bleiben.
  • Das objekt, das aus Load erstellt wird, kann nur einem Speicherort in der primären Objektstruktur zugewiesen werden. Wenn Sie Objekte, die aus identischem XAML erstellt wurden, verschiedenen Bereichen der primären Objektstruktur der Anwendung hinzufügen möchten, müssen Sie den XAML-Code mehrmals mithilfe der gleichen Eingabezeichenfolge analysieren und dabei verschiedene Ziele für den Rückgabewert verwenden.
  • Die verbleibende primäre Objektstruktur muss eine entsprechende festzulegende Eigenschaft unterstützen.

Gilt für:

Weitere Informationen