C#と同じように、xamlにも名前空間が存在します。
xamlの名前空間
XAMLコードのルートタグ内の最初の部分にある「xmlns:」の部分が、xaml名前空間です。
「xmlns」以下が名前空間に当たります。
多くの XAML ファイルのルート タグの名前空間宣言内には、通常 2 つの XML 名前空間宣言が含まれています。 最初の宣言では、次のように WPF クライアント/フレームワークの XAML 名前空間全体を既定として割り当てます。
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2 番目の宣言は、個別の XAML 名前空間を割り当てます (通常は、x: プレフィックスに割り当てます)。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
「xmlns」以下が名前空間に当たります。
xamlコード内で、分離コードなどのC#コード内で記述したクラスを使用するためには、使用するクラスのC#コードが存在する名前空間をxamlコード内で宣言する必要があります。
xamlのName属性、x:Name属性
xamlの要素に、Name属性を指定するとその要素の色々な属性に分離コード(.xaml.cs)からアクセスする事ができます。
ほとんどの場合、Name属性、x:Name属性の間には違いがありません。
x:Name属性は、xaml固有の属性です。そのため、xamlファイルのすべてのオブジェクトの識別に使用することができます。
Name属性は、FlamewotkElementクラスで定義されているため、FlamewotkElementクラスの派生クラスでしか利用できません。
x:Name属性を使用するには、以下のxaml名前空間を宣言しておく必要があります。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
トークンの説明:引用
clr-namespace:
要素として公開するパブリック型を含むアセンブリ内で宣言される CLR 名前空間。
assembly= :
参照される CLR 名前空間の一部またはすべてを含むアセンブリ。 通常、この値にはパスではなくアセンブリの名前のみを設定し、拡張子 (.dll、.exe など) は含めません。 そのアセンブリへのパスは、割り当てる XAML が格納されたプロジェクト ファイルのプロジェクト参照として確立される必要があります。 バージョン管理および厳密な名前の署名を組み込むために、assembly 値を、単純な文字列名ではなく AssemblyName によって定義されている文字列にすることもできます。
clr-namespace トークンとその値を区切る文字はコロン (:) ですが、assembly トークンとその値を区切る文字は等号 (=) であることに注意してください。 これら 2 つのトークン間で使用する文字は、セミコロンです。 さらに、宣言内で空白は使用しないでください。
