XAMLの種類
XAMLは利用局面で差があります。良くわかりませんが、手直しする覚悟がないと流用できないのは確かです。
- サポートされる名前空間
- サポートされるクラス
- サポートされるプロパティ
- サポートされるイベント
1.Silverlight と .NET Framework
現在では、.NET Framework は OS の付き物になっているので、XAMLを扱う全てのパソコンで利用可能です。
これに対して、Silverlight のランタイムは、ユーザがインストールしなければなりません。
つまり、フルセットのXAMLが無条件で使えるのに、サブセット(Silverlight)を使うにはインストールが必要と言うことです。
- XAMLを扱うブラウザ以外のアプリケーションは、.NET Framework が使われる。
- ブラウザは、XAMLファイルを開くのに、.NET Framework を使う。
- ブラウザは、HTML の object タグで type=application/x-silverlight が要求されると、XAMLマークアップやXAPファイルをSilverlightのコンポーネントに渡す。
プログラミングする観点では、Silverlightアプリケーション、WPFアプリケーションのいずれかを選んで編集することになるので、「WPFとSilverlightの差」言うことにします。
2.XPSについて
PDFと同じような目的を持つXPSファイルはXAMLで記述されています。
「SilverlightとWPFでのXPSファイルの表示」
ワードなどのアプリケーションがXPSファイルを作ります。XAMLも重要です。
3.プログラムでXAMLを扱う
System.Windows.Markup.XamlReader.Load()
が、あります。
XPSファイルを扱うには、
System.Windows.Xps.Packaging.XpsDocument
があります。
XPS由来のXAMLを、Silverlight の System.Windows.Markup.XamlReader.Load()で読み出すと、Canvasの RenderOptions.EdgeMode、ImageBrushの TileMode, Viewbox, ViewboxUnits, Viewport, ViewportUnits、Glyphsの BidiLevel が、エラーになりました。
4.その他の区別
Silverlight と .NET Framework で、XAMLの記述に差があるのは明らかですが、そのほかにも差があることに気が付きました。
以下は、
WPFのXAML > SilverlightのXAML
の図式に乗らない差異で気が付いたことです。
|
区分 |
該当箇所 |
説明 |
| Silverlight と WPF の差異 |
Glyps の FontUri |
- WPFでは、.odtfを使えない
- WPFでは、httpプロトコルが使えない。(おそらく内部のフォントに制限)
|
| Glyps の UnicodeString |
WPFでは、数値で文字を指定できない。
属性間の区切りを誤認してしまう。 |
| SilverlightでXAMLマークアップを直接開く |
Button、CheckBox、TextBox、... |
通常、HTMLのobjectタグでXAPを開く。XAMLも開ける。この場合、Buttonを記述すると一切表示が出なくなる。TextBoxは表示されるが入力はできない。入力機能を持つUIエレメントは使えないと考えられる。 |
| |
|
|
|