2011-01-26 8 views
1

我々はこのようTextBlockまたはGridでいくつかのプロパティを参照してください。X:Nameの(x)はSilverlight XAML Markupの意味は何ですか?

<TextBlock x:Name="TextBlock1" ... 

は、なぜ我々は、この(X)が含まれていますか?

<TextBlock Name="TextBlock1" ... 

つまり、私たちは既にこのTextBlockの定義範囲に入っています。そうですか?

理由があるはずです。

ありがとうございます。

答えて

4

これは名前空間接頭辞です。

例1:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 

XAML名前空間を参照するXプレフィックスを宣言します。

あなたは、XAMLページでこのように表示されます。

例2:

あなたは、名前空間を登録し、それにプレフィックスを与えることによって、独自のユーザーコントロールを読み込むことができます。

xmlns:mycontrols="clr-namespace:MyControls.Namespace;assembly=MyAssembly" 

ここでは、この名前空間のコントロールの1つを使用するためにプレフィックスを使用しています。

<mycontrols:MyControl /> 
+0

OKを助けますので、(x)の名前空間は、シルバーの実行時間内で定義されて? –

+0

私はちょうど私の答えを更新しました.xaml simliarの先頭にxが付いていることを確認してください。 – Gabe

+0

私はこれがCode-Behindでusingステートメントを追加するのと同じですか?これは標準化と関係がありますか? –

6

Gabeの答えの拡張として、x:Nameは添付プロパティです。添付プロパティは、標準プロパティとは異なります(通常、それらを使用するコントロールでは定義されていません)。たとえば、TextBlockコントロールにはx:Nameプロパティがありません。代わりに、このプロパティはXAML名前空間の別の場所で定義され、TextBlockコントロールに「接続」されてその動作を実装します。 「XAML名前空間にあるName添付プロパティを使用したいと思っています」もちろん、TextBlockコントロールにはNameプロパティがあります(これはSilverlight 2では使用されていませんでした。

添付プロパティのもう1つの例は、Grid.Rowです。TextBlockコントロールでこのプロパティを使用すると、どの行を指定するかを指定することができます(これは、x:Name添付プロパティを使用します)。コントロールはグリッドに表示されるはずです(グリッドコントロールで定義されています)。TextBlockは、そのプロパティをそのビヘイビアと関連付けているだけで、最初は混乱するコンセプトですが、強力で便利な付属プロパティの詳細については、http://msdn.microsoft.com/en-us/library/cc265152(VS.95).aspxをご覧ください。

希望これは...

クリス

+0

+1有益です。 –

+0

+1これは素晴らしい追加でした – Gabe

関連する問題