gpt4 book ai didi

silverlight - 构建为 "Page"的 XAML 文件在哪里?

转载 作者:行者123 更新时间:2023-12-04 05:25:20 24 4
gpt4 key购买 nike

我已将 XAML 文件添加到 Windows Phone 8 项目。它的构建 Action 是“页面”。我想将 XAML 作为文本字符串加载(以输入 XamlReader.Load() )。我怎样才能做到这一点?

它不能作为 XAP 包中的单独文件提供;它可能在 DLL 的某个地方。

最佳答案

设置为 Page 时,编译器会将 XAML 编译为 BAML,并将 BAML 文件作为资源添加到程序集中。

如果您希望在运行时从 BAML 资源中取回原始 XAML,则需要反序列化 BAML,然后将您的对象序列化为 XAML。

你可以看看Baml2006Reader ,或者更好的选择是使用 Application.LoadComponent这是什么InitializeComponent方法内部使用。 InitializeComponent由部分生成的类为您的 XAML 代码调用。

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使用 XamlWriter 到 XAML 字符串:
string xaml = XamlWriter.Save(rootObject);

请注意,这是 XamlWriterSystem.Windows.Markup命名空间,而不是 System.Xaml .如果你的 XAML 有 WPF 类型,那么你应该使用这个 XamlWriter以免出错。

关于silverlight - 构建为 "Page"的 XAML 文件在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com