x:Type マークアップ拡張機能

更新 : 2007 年 11 月

指定した型の Type オブジェクトを提供します。

XAML 属性の使用方法

<object property="{x:Type prefix:typeNameValue}" .../>

XAML オブジェクト要素の使用方法

<object>
  <object.property>
    <x:Type TypeName="prefix:typeNameValue"/>
  </object.property>
</object>

XAML 値

prefix

省略可能。既定以外の XML 名前空間を割り当てるプレフィックス。ほとんどの場合、プレフィックスは指定する必要がありません。「解説」を参照してください。

typeNameValue

必須。現在の既定の XML 名前空間で解決できる型名。prefix を指定した場合はその割り当てられたプレフィックス。

解説

x:Type は、Type を受け取るプロパティに属性値を提供するために使用されます。ただし、Type を値として受け取るプロパティの多くは、型の名前 (Name 型の文字列値) を直接使用できます。詳細については、特定のプロパティのドキュメントを確認してください。x:Type は、基本的に、C# の typeof() 演算子、または Microsoft Visual Basic .NET の GetType 演算子と等価なマークアップ拡張機能です。

特定の XAML ページの既定の XML 名前空間を、ルート要素の属性として定義します。一般に Windows Presentation Foundation (WPF) プログラミングで使用する既定の XML 名前空間は WPF 名前空間です。この名前空間の識別子は https://schemas.microsoft.com/winfx/2006/xaml/presentation です。一般的な WPF アプリケーションのプログラミングで使用される型の大部分は、この名前空間内にあります。したがって、x:Type を使用する場合は、通常、型を取得するためにプレフィックスを割り当てる必要はありません。カスタム アセンブリ内の型を参照している場合、または WPF アセンブリ内に存在する型ではあるが、その型がある CLR 名前空間が、そのアセンブリの WPF 名前空間の一部となるように割り当てられていない場合は、プレフィックスの割り当てが必要になることがあります。プレフィックス、XML 名前空間、および CLR 名前空間の割り当てについては、「XAML 名前空間および名前空間の割り当て」を参照してください。

属性構文は、このマークアップ拡張機能で使用される最も一般的な構文です。x:Type 識別子文字列の後に設定される文字列トークンは、基になる TypeExtension 拡張クラスの TypeName 値として割り当てられます。この属性の値は、目的の型の Name です。

x:Type は、オブジェクト要素構文で使用できます。この場合、拡張機能を正しく初期化するには、TypeName プロパティの値を指定する必要があります。

x:Type は、TypeName プロパティをプロパティおよび値のペアとして指定する詳細出力属性使用でも使用できます。

<object property="{x:Type TypeName=typeNameValue}" .../>

詳細出力の使用は、複数の設定可能プロパティを持つ拡張機能や、一部のプロパティがオプションである場合に役立ちます。x:Type には、必須の設定可能プロパティが 1 つしか存在しないため、このような詳細出力の使用は一般的ではありません。

WPF XAML プロセッサ実装では、このマークアップ拡張機能の処理は、TypeExtension クラスによって定義されます。

x:Type はマークアップ拡張機能です。一般にマークアップ拡張機能を実装するのは、属性値をリテラル値やハンドラ名以外にエスケープする要件が存在し、その要件の適用範囲がグローバルで、特定の型やプロパティに型コンバータを適用するだけにとどまない場合です。XAML のすべてのマークアップ拡張機能では、それぞれの属性構文で { と } の 2 つの記号を使用します。これは規約であり、これに従って XAML プロセッサは、マークアップ拡張機能で属性を処理する必要があることを認識します。詳細については、「マークアップ拡張機能と XAML」を参照してください。

参照

概念

スタイルとテンプレート

XAML の概要

マークアップ拡張機能と XAML

参照

Style