Sdílet prostřednictvím


x:Code – vnitřní typ jazyka XAML

Umožňuje umístění kódu v produkčním prostředí XAML. Takový kód lze buď zkompilovat jakoukoli implementací procesoru XAML, která kompiluje XAML, nebo ponechána v produkčním prostředí XAML pro pozdější použití, jako je interpretace modulem runtime.

Použití elementu objektu XAML

<x:Code>
   // code instructions, usually enclosed by CDATA...
</x:Code>

Poznámky

Kód uvnitř elementu x:Code direktivy XAML je stále interpretován v rámci obecného oboru názvů XML a zadaných oborů názvů XAML. Proto je obvykle nutné uzavřít kód použitý pro x:Code uvnitř CDATA segmentu.

x:Code není povolen pro všechny možné mechanismy nasazení v produkčním prostředí XAML. V konkrétních architekturách (například WPF) musí být kód zkompilován. V jiných architekturách x:Code může být použití obecně zakázáno.

Pro architektury, které umožňují spravovaný x:Code obsah, je správný kompilátor jazyka, který se má použít pro x:Code obsah, určen nastavením a cíli obsahujícího projektu, který se používá ke kompilaci aplikace.

Poznámky k využití WPF

Kód deklarovaný v rámci x:Code WPF má několik znaménných omezení:

  • Element x:Code direktivy musí být okamžitý podřízený prvek kořenového prvku v produkčním prostředí XAML.

  • Pro nadřazený kořenový prvek musí být uvedena direktiva x:Class.

  • Kód umístěný uvnitř x:Code bude zpracován kompilací tak, aby byl v oboru částečné třídy, která je již vytvořena pro danou stránku XAML. Proto veškerý kód, který definujete, musí být členy nebo proměnné této částečné třídy.

  • Nelze definovat další třídy, jiné než vnořením třídy uvnitř částečné třídy (vnoření je povoleno, ale není to typické, protože vnořené třídy nelze odkazovat v XAML). Obory názvů CLR jiné než obor názvů, který se používá pro existující částečnou třídu, nelze definovat ani přidat.

  • Odkazy na entity kódu mimo obor názvů CLR částečné třídy musí být všechny plně kvalifikované. Pokud jsou deklarované členy přepsány na částečné členy přepsání třídy, musí být zadáno pomocí klíčového slova přepsání specifické pro jazyk. Pokud jsou členy deklarované v x:Code konfliktu s členy částečné třídy vytvořené z XAML tak, aby kompilátor hlásí konflikt, soubor XAML nemůže kompilovat nebo načíst.

Viz také