《深入浅出WPF》学習ノートのx名称空間詳細解

2890 ワード

x名前空間の由来:


xネームスペースのメンバーはXAMLコンパイラ専用で、XAMLコンパイラがXAMLをCLRコードにコンパイルするように導くため、xはXAMLの頭文字です.XAMLのコンパイル方法,クラス名の生成,属性のアクセス性などを,x空間のメンバによってコンパイラに教える.

xネームスペースのAttribute:


x:Classは、XAMLコンパイラがXAMLラベルのコンパイル結果をバックグラウンドコードのどのクラスとマージするかを示すために使用され、ルートノードにのみ使用でき、ルートノードのタイプはバックグラウンドコードのクラスと一致しなければならない.
x:ClassModifierは、XAMLコンパイラがXAMLラベルをコンパイルしたクラスにどのようなアクセスレベルがあるかを示すために使用され、指定したバックエンドコードアクセスレベルと一致するx:Class Attributeのラベルが必要であることを示します.
x:Nameは、XAMLコンパイラに作成したオブジェクトを指定した変数名に割り当てるように伝えます.これにより、コードで直接オブジェクトを参照できます.ラベルにName属性がある場合は、x:Nameで指定した値にName属性を割り当てます.コードの統一性を高めるために、すべてx:Nameを使用してオブジェクトの変数名を指定します.
x:FieldModifierは、XAMLコンパイラがラベルから生成したクラスのフィールドへのアクセスレベルを示すために使用されます.デフォルトはinternalです.
x:Keyは、リソース辞書にkey値を指定し、XAMLでStaticResourceタグ拡張を使用してリソース検索を行う場合に使用します.親エレメントに自動的に取得され、リソースが見つかるかアプリケーションに到達するまで再帰できます.コードで使用することにより.FindResourceメソッドは、リソースを再帰的に取得することもできます.
x:Sharedは、x:Keyと組み合わせて使用され、リソースオブジェクトの取得時に同じオブジェクトのコピーを使用するか、異なるオブジェクトを使用するかを指定するために使用されます.デフォルトx:Share=「True」なので、リソースは同じオブジェクトを取得します.

xネームスペースのタグ拡張:


x:Type、タイプはType Extensionのタグ拡張で、XAMLでTypeタイプを指定します.C#のtypeofキーワードと似ています.x:Typeのデフォルトパラメータは、{x:Type local:MyWindow}または{x:Type Type Type Type Name=local:MyWindow}などのタイプです.
x:Null、タイプがNull Extensionのタグ拡張で、XAMLに属性として表示されてNull値を指定します.リソース辞書でStyleが定義され、keyとTargetTypeがターゲットタイプとして指定されている場合、ターゲットタイプのすべてのラベルはデフォルトで使用されます.コントロールがデフォルトのStyleを使用したくない場合は、Style={x:Null}などのnullをStyleに指定できます.
タグ拡張は、標準的なカッコ形式で使用するだけでなく、属性要素の構文宣言も使用できます.たとえば、この書き方は煩雑であることは明らかですが、x:Arrayタグ拡張を使用する場合は、このタグ形式の構文を使用する必要があります.
x:Array、ArrayExtensionタイプのタグ拡張子.XAMLで配列オブジェクトを宣言するために使用されます.ラベル構文のみを使用できます.次のコードクリップなどです.
            
                
                    "sys:String">
                        String1
                        String2
                        String3
                    
                
            

x:Static、タイプはStaticExtensionのタグ拡張で、XAMLでクラスの静的フィールドまたは静的属性(Text={x:Static local:Window 1.ShowText}など)を参照するために使用されます.

XAML指令要素:


XAML命令要素は2つしかありません.x:Codeとx:XData、x:CodeはC#コードをXAMLに配置するために使用され、x:XDataはデータプロバイダにデータを提供するために使用されます.以下のコードフラグメントなどです.
    
        "asdf">
            
                
                    Item1
                    Item2
                
            
        
    

 
転載先:https://www.cnblogs.com/jefflee/p/5806041.html