Sdílet prostřednictvím


x:Code – vnitřní typ 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 v rámci elementu direktivy XAML x:Code 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í povoleno 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 může být použití x:Code 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 pro WPF má několik znaménných omezení:

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

  • direktiva x:Class musí být k dispozici v nadřazené kořenovém elementu.

  • Kód umístěný v rámci 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é