UserControls を作成すると、コントロールが初期化されるたびに XAML が解析されているように見えます。
たとえば、UserControl を作成すると、次のようなコンポーネントを初期化するコードが自動生成されます。
public void InitializeComponent()
{
if (_contentLoaded)
return;
_contentLoaded = true;
global::Windows.UI.Xaml.Application.LoadComponent(this, new global::System.Uri("ms-appx:///Views/MyView.xaml"), global::Windows.UI.Xaml.Controls.Primitives.ComponentResourceLocation.Application);
}
これは Silverlight にもありました。
コントロールを 1 回または 2 回作成することは大したことではありませんが、各 UserControl に Visual-States とバインディングを備えた大きなビジュアル ツリーがあり、アプリケーションのライフサイクルごとに何度も作成する場合は、ビジュアルを構築することは理にかなっています。 C# を使用して制御し、パフォーマンスを向上させます。
だから、私の質問は:
パーサー/フレームワークは XAML ファイルを「記憶」し、後続の呼び出しで再解析を回避しますか? つまり、XAML のバイナリ表現を作成するので、テキストを何度も読み取る必要はありませんか?