XamlReader.Load(String) 方法

定義

剖析格式正確的 XAML 片段,並建立對應的物件樹狀結構,並傳回物件樹狀結構的根目錄。

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

參數

xaml
String

Platform::String

winrt::hstring

包含有效 XAML 片段的字串。

傳回

Object

Platform::Object

IInspectable

所建立物件樹狀結構的根物件。

範例

此範例會從 XAML 字串建立單一 橢圓 形,呼叫 Load。 然後,它會將已建立但已中斷連線 的 Ellipse 連接到已存在於執行中 UWP app 中元素的 Children 集合。 最後,此範例會在使用查詢新增的位置再次存取 Ellipse ,並變更其中一個屬性。

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

備註

XamlReader提供物件建構行為,可平行處理 XAML 剖析器Windows 執行階段 XAML 剖析器的方式,以及使用 XAML 來定義 UWP 應用程式的 UI。 使用 XamlReader.Load 剖析 XAML 輸入會產生Windows 執行階段物件的執行時間物件樹狀結構。 物件樹狀結構可讓您在執行時間針對這些物件進行程式設計,方法是逐步執行整個樹狀結構的一部分。

當您使用 XamlReader.Load 方法從 XAML 建立物件時,有幾個重要概念:

  • XAML 內容字串必須定義單一根項目。
  • XAML 內容字串必須是格式正確的 XML,以及有效的 XAML。
  • XAML 內容必須定義預設 xmlns。 這通常是WINDOWS 執行階段 XAML 詞彙,如 所 http://schemas.microsoft.com/winfx/2006/xaml/presentation 識別。
  • XAML 命名空間對應中參考的任何自訂群組件都必須已經可供應用程式使用。
  • XAML 不應該嘗試指定 x:Class 屬性,或包含事件處理常式的任何 XAML 定義屬性。
  • 您無法在一般 XAML 名稱範圍中使用 FindName 來尋找新增的執行時間物件,但您可以在所建立物件的特定 XAML 名稱範圍內搜尋。 如需詳細資訊,請參閱 XAML 命名範圍
  • 物件建立邏輯無法在執行時間將載入的 XAML 與程式碼後置類別整合。 如果您想要新增事件處理常式,您必須在程式碼中參考從 Load 結果的物件樹狀結構中取得的物件,並使用特定語言語法附加處理常式 (,例如 +=) 。
  • 必須有現有的 XAML 內容;您無法取代整個內容樹狀結構。 您至少必須保留原始根項目,讓已載入 XAML 頁面的應用程式模型含意保持作用中。
  • 從 Load 建立的物件只能指派給主要物件樹狀目錄中的一個位置。 如果您想要將從相同 XAML 建立的物件新增至應用程式主要物件樹狀結構的不同區域,您必須使用相同的輸入字串來剖析 XAML 多次,並使用不同的目的地來傳回值。
  • 剩餘的主要物件樹狀結構必須支援要設定的適當屬性。

適用於

另請參閱