WPFノートXAMLについて

4311 ワード

WPFノートXAMLについて


一XAMLの起源と実現の特徴


1.1 XAMLの起源


XAMLはXMLのバリエーションから来ており、主にWPFにおけるインタフェースディスプレイ層を実現するために設計されたバリエーションである(すなわち、XAMLはWPFにおいてUIを設計するために特化されたものである).XAMLには明示的な言語のみが含まれており,論理コードを加えることはできない(実際には,論理とUIの分離が強制される).なぜXMALは論理とUIの分離を実現できるのか.
  • C#のpartialクラスにより、UIと論理コード実装クラスの別々の設計を統合統合する.実際,XAMLは最後にXAML解析器によってクラスと一連のオブジェクトの定義と付与として解析される.

  • 1.2 XAMLのattribute


    XAMLの基本構成は一連のラベルおよびラベルのattributeである.attributeはpropertyとは違います.
  • propertyは、オブジェクトに対するオブジェクトの一連の属性である.例えば抽象的な人間の類、属性は人間の身長、性別、年齢などを指す.
  • 多くのattributeが最後にオブジェクトの属性(buttonのwidth,height,backgroundなどの特徴)に付与されているにもかかわらず.これは、attributeがpropertyと同じものであることを意味するものではありません.簡単な例は、attributeにx:classがあり、XMAL解析器に、クラスをマージする方法、x:ClassModifierがあり、XAML解析器に、ラベルから生成されたクラスがどのような制御レベルを持っているかを教えます.

  • 1.3 XAMLのネームスペース


    ネームスペースとは、一連のURLのようなものを指します.この串は何の役に立つのですか.
  • C#で使用する.NETのパッケージ、またはwindowsのデフォルト機能、またはサードパーティのコントロール.開始プロセスは、プロジェクトへのパッケージの参照(.NETおよびwindowsのデフォルトパッケージの一部が自動的に参照されている)を追加し、using文を使用してクラスライブラリを参照し、クラスのオブジェクトインスタンスを使用します.
  • XAMLでは、同様に参照クラスライブラリをプロジェクト参照に追加し、using文の代わりにxmlns(xml namespaceの略)を使用し、オブジェクトインスタンス(button、windows、gridなどのオブジェクトインスタンス)を使用することができます.
  • ` xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"`
    

    対応するのは2つの基本的な名前空間(クラスライブラリ)を導入し、最初の名前空間はwindows、button、stackpanelなどの様々なUI要素を含むWPFの展示クラスライブラリを表す.2番目の名前空間はXAMLコンパイラクラスライブラリの導入を表し,これによりXAMLの解析を勝ち取ることができる.なぜhttpサイトに似ているのでしょうか?xmlns:xは略語を指すだけです.

    二XAMLの構造


    2.1要素ツリー


    XAMLは実質的に多くのラベルの集合(UI要素とも呼ばれる)であり、開始ラベルと終了ラベルの間にはラベルの内容が表示される(対応するラベルにはcontent属性があり、デフォルトでは開始と終了の間にcontent付与される).このようにして要素ツリー構造を構成します.ラベルの内容は、サブコントロールとも呼ばれるサブ要素であってもよい.ラベルのサブエレメントは、実質的に親エレメントの一連の属性に対する付与であり、サブエレメントは親エレメントのcontentまたはchildrenまたはitems属性に対する付与である.したがって、開始ラベルと終了ラベルの間には、親要素の一部の属性オブジェクトにも値を割り当てることができます.

    2.2拡張可能タグクラス


    実際には拡張可能なインタフェースを継承し、新しいオブジェクトインスタンスを生成する必要がある場合は、特殊な構文で置き換えることができます.





    haoba
    meishi

    itemssourceは拡張タグクラスを使用しており、本質は:Binding myBinding = new Binding() { Source = DCMData, Path = "Name", Mode = BindingMode.OneWay };注意すべきは:
  • 拡張タグ機能を使用するには、クラスが拡張タグインタフェースを実現しなければならない.XAMLではすべてのクラスが拡張タグインタフェースを実現しているわけではない.

  • 2.3 xネームスペースの使用について


    xネームスペース:xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"XAMLを表すコンパイラクラスの特性は次のとおりです.
  • x:FieldModifierフィーチャーを使用して現在のUI要素のアクセス属性を指定し、主に他のXAMLの参照権限を指す
  • x:Nameフィーチャーを使用して参照変数名を明示します.どういう意味ですか?前にtextboxについて説明しましたが、名前は指定されていません.textboxにアクセスするにはwindows->grid->textboxの階層関係しか使用できません.x:Nameを使用して直接名前を付けることができます.これにより、csファイルで階層検索を行わずに、この指定した名前を直接使用することができます.meishi
    では質問は?textbox自体にnameの特徴があるのではないでしょうか.なぜx:Nameを使用して指定する必要があるのでしょうか.すべてのエレメントにName属性があるわけではありませんが、すべてのエレメントはx:Nameで名前を指定できます.したがって、x:Nameフィーチャーをすべて使用すると、コードの統一性と読み取り性が向上します.
  • x:keyを使用してリソース検索フラグを追加する特徴は非常に使いやすく、リソース(resources)はWPFにおいて非常に重要であり、StyleなどのXAMLコンテンツを繰り返し使用する必要があり、各種Templateやその他はリソースファイルに入れる必要がある.gridに複数のピクチャリソースを追加:


    hello world

    haoba
  • x:Static属性は、1つのプログラムが国際化をサポートする必要がある場合、表示する文字列リソースを1つのリソースクラスのstatic属性に保存するのが一般的です.したがって,国際化をサポートするプログラムUIではx:Staticの使用が非常に頻繁である.x:Staticを使用して、指定したクラスにアクセスする静的リソースを指定します.