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 コード ビハインドの部分的に生成されたクラスによって呼び出されます。InitializeComponent
InitializeComponent
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.Markup
System.Xaml
XamlWriter