XamlReader.Load(String) Methode

Definition

Analysiert ein wohlgeformtes 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 ist. 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 seiner 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 ein Objektkonstruktionsverhalten bereit, das parallel zur Analyse von XAML durch den Windows-Runtime XAML-Parser und die Verwendung von XAML zum Definieren der UI einer UWP-App entspricht. Durch analysieren der XAML-Eingabe mit XamlReader.Load werden Laufzeitobjektstrukturen von Windows-Runtime Objekten generiert. Die Objektstruktur bietet eine Möglichkeit, diese Objekte zur Laufzeit zu programmieren, indem Sie durch Teile der vollständigen Struktur gehen.

Es gibt mehrere Konzepte, die wichtig 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 wohlgeformt XML sein und auch gültiges XAML sein.
  • Der XAML-Inhalt muss eine Xmln-Standarddatei definieren. In der Regel ist dies das Windows-Runtime XAML-Vokabulars, wie durch http://schemas.microsoft.com/winfx/2006/xaml/presentation.
  • Alle benutzerdefinierten Assemblys, auf die in einer XAML-Namespacezuordnung verwiesen wird, müssen bereits für die Anwendung verfügbar sein.
  • Der XAML-Code sollte nicht versuchen, 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. Sie können jedoch innerhalb des spezifischen XAML-NameScopes des erstellten Objekts suchen. Weitere Informationen finden Sie unter XAML-NameScopes.
  • Objekterstellungslogik kann den geladenen XAML-Code nicht zur Laufzeit in CodeBehind-Klassen integrieren. Wenn Sie Ereignishandler hinzufügen möchten, müssen Sie dies im Code tun, indem Sie in der Objektstruktur des Load-Ergebnisses abgerufene Objekte verweisen und sprachspezifische Syntax zum Anfügen von Handlern (z +=. B. ) verwenden.
  • Es muss bereits XAML-Inhalt vorhanden sein; Sie können die gesamte Struktur des Inhalts nicht ersetzen. Sie müssen das ursprüngliche Stammelement mindestens beibehalten, damit die Auswirkungen des App-Modells auf eine geladene 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 hinzufügen möchten, die aus identischen XAML-Code zu unterschiedlichen Bereichen der primären Objektstruktur der Anwendung erstellt wurden, müssen Sie den XAML-Code mehrmals mithilfe derselben Eingabezeichenfolge analysieren, wobei verschiedene Ziele für den Rückgabewert verwendet werden.
  • Die verbleibende primäre Objektstruktur muss eine entsprechende Eigenschaft unterstützen, die festgelegt werden soll.

Gilt für:

Weitere Informationen