XAML ファイルを Windows Phone 8 プロジェクトに追加しました。そのビルド アクションは「ページ」です。XAML をテキスト文字列としてロードしたい (にフィードするためXamlReader.Load())。どうすればこれを達成できますか?
XAP パッケージで個別のファイルとして入手することはできません。おそらくDLLのどこかにあります。
XAML ファイルを Windows Phone 8 プロジェクトに追加しました。そのビルド アクションは「ページ」です。XAML をテキスト文字列としてロードしたい (にフィードするためXamlReader.Load())。どうすればこれを達成できますか?
XAP パッケージで個別のファイルとして入手することはできません。おそらくDLLのどこかにあります。
に設定するPageと、コンパイラは XAML を BAML にコンパイルし、BAML ファイルをリソースとしてアセンブリに追加します。
実行時に元の XAML を BAML リソースから取得したい場合は、BAML を逆シリアル化してから、オブジェクトを XAML にシリアル化する必要があります。
Baml2006Readerを見ることができます。または、メソッドが内部で使用するApplication.LoadComponentものを使用することをお勧めします。XAML コード ビハインドの部分的に生成されたクラスによって呼び出されます。InitializeComponentInitializeComponent
var uri = new Uri("/MyAppName;component/MyXaml.xaml", //Note extension: XAML, not BAML
UriKind.Relative);
Page rootObject = new Page(); //Assuming XAML root element is Page - it could be anything
Application.LoadComponent(rootObject, uri);
(XAML ファイルのルート要素が であると仮定しますPage)。
Page次に、を使用して XAML 文字列にシリアル化できますXamlWriter。
string xaml = XamlWriter.Save(rootObject);
これは名前空間の であり、 ではないXamlWriterことに注意してください。XAML に WPF 型がある場合は、これを使用してエラーを回避する必要があります。System.Windows.MarkupSystem.XamlXamlWriter