XamlReader.Load(String) Methode

Definition

Analysiert ein wohlgeformte XAML-Fragment, 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 nicht verbundene 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. Das Analysieren der XAML-Eingabe mit XamlReader.Load generiert Laufzeitobjektstrukturen von Windows-Runtime-Objekten. Die Objektstruktur bietet eine Möglichkeit, diese Objekte 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 und gültige XAML sein.
  • Der XAML-Inhalt muss eine Standard-XML-Datei definieren. In der Regel ist dies das Windows-Runtime XAML-Vokabular, das durch identifiziert wirdhttp://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, 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-Namensskops 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 verwenden (z. B +=. ).
  • Xaml-Inhalte müssen 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 einer Position in der primären Objektstruktur zugewiesen werden. Wenn Sie Objekte hinzufügen möchten, die aus identischem XAML zu verschiedenen Bereichen der primären Objektstruktur der Anwendung erstellt wurden, müssen Sie den XAML-Code mehrmals mithilfe der gleichen Eingabezeichenfolge analysieren und unterschiedliche Ziele für den Rückgabewert verwenden.
  • Die verbleibende Struktur des primären Objekts muss eine entsprechende Eigenschaft unterstützen, die festgelegt werden soll.

Gilt für:

Weitere Informationen