0

我尝试FrameworkElementDavidPoll's XamlSerializer序列化 a ,但得到的结果与使用 Silverlight Spy 得到的(右)完全不同。例如,使用 XamlSerializer 我得到了很多空标签(如 MatrixTransform、ScrollViewer 等),但没有ContentPresenter得到 Silverlight Spy 的节点。知道如何在运行时获得干净的逻辑树吗?

更新:我有一个表单设计器程序,将这些表单存储在数据库中,并在运行时根据存储在数据库中的信息创建对象(用户控件)。每个表单都由一些字段组成。在运行时,它以编程方式创建一个包含所有字段的 UserControl。我想获得生成的 XAML,就像我可以使用 Silverlight Spy 获得它一样。

银光间谍

编辑:我不限于 Silverlight 环境,桌面应用程序的解决方案也是有效的。

4

1 回答 1

1

简短的回答是:我认为您不能从 Silverlight 本身中获得。对不起。

一旦 XAML 被解析并加载到框架元素中,您就已经丢失了信息。例如path,从内存中的对象重新生成 a 并非易事,您将无法从 Silverlight 代码访问路径元素的内部。

Silverlight Spy 添加了简单的 XamlSerializer 不会生成的信息。Silverlight Spy没有任何限制,因为它是一个“真正的”桌面应用程序,具有完整的操作系统访问权限,而您希望在 Silverlight 本身中实际执行此操作,这是非常受限制的沙盒环境(出于安全原因)。

于 2012-03-02T13:27:07.630 回答