xamlとは
xaml(eXtensible Application Markup Language)はxml(eXtensible Markup Language)を拡張したファイル形式です
xmlはhtmlのようなツリー構造をテキストで表現するファイル形式です
htmlとJavaScriptのような関係で xamlとC#等でプログラムを作る際に見た目の記述に使います

詳しい説明は他のサイトを見て頂くとして 簡単に説明します
xamlはひとつだけ要素を持ちます(ルート要素)
<要素></要素>がひとつの塊です
要素は中身を持つことが出来ます(子要素)
<要素>何か</要素>中身を持っていない場合
<要素></要素>
は
<要素/>
と省略できます
子供の子供の...と深くすることが出来ます
<要素><子要素>
<孫要素/>
</子要素>
</要素>
内側より先に外が終わることは出来ません
<要素><子要素>
<孫要素>
</子要素>
<孫要素/>
</要素>
NG
子要素を複数持てるものがあります(持て無いものもあります)
<要素><子要素>
<孫要素/>
<孫要素/>
</子要素>
<子要素/>
</要素>
要素は属性を持てます 属性は「=””」で値を指定します
<要素 属性1="値" 属性2="値" 属性3="値"/>改行や複数の空白は無視されます
<要素 属性1="値"属性2="値">
<子要素>
<孫要素/>
</子要素>
</要素>
と
<要素 属性1="値" 属性2="値"><子要素><孫要素/></子要素></要素>
は同じです
<!-- -->で囲われた部分はコメントになり無視されます
<要素><!--コメント-->
<子要素/>
</要素>
しかしコメントも要素の一種なので「<>」の中には書けません
<要素 属性1="値"
<!--コメント-->
"属性2="値"/>
NG
属性を「<要素.属性>」として子要素にすることが出来ます
<要素 属性="値"/>と
<要素>
<要素.属性>値</要素.属性>
</要素>
は同じです
実は子要素を持つというのは 要素ごとに決まっている既定属性値に入れているということです
実例を出します
<TextBlock>
zeKey
</TextBlock>
は子要素として文字列「zeKey」を持っています TextBlock の 既定属性は Text なので
<TextBlock Text="zeKey"/>
と同じ意味になります
<TextBlock>
<TextBlock.Text>
zeKey
</TextBlock.Text>
</TextBlock>
と展開することも出来ます この場合ただ長くなっただけで無意味ですが
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
</Grid>
のように属性値を複数持てる属性を指定する場合に使います
値はすべて文字列です
しかしxamlを読み込む段階で自動で変換されます<TextBlock Width="100"/>
100は数値に変換されます
ですが属性が期待している値に 変換できないような値は 当然エラーになります
<TextBlock Width="テキストブロック"/>
NG
要素 属性は大文字小文字を区別します
<Textblock width="100"/>NG
0 件のコメント :
コメントを投稿