【问题标题】:Programmatically get XAML of an FrameworkElement in SL4以编程方式获取 SL4 中 FrameworkElement 的 XAML
【发布时间】:2012-03-02 11:03:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: silverlight xaml serialization silverlight-4.0 frameworkelement


    【解决方案1】:

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

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

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

    【讨论】:

    • 我不限于 Silverlight 环境。知道如何在桌面应用程序中执行 Silverlight Spy 的操作吗?
    • @redman:也许如果你解释一下你的总体目标,我可以提出更好的建议?
    猜你喜欢
    • 2011-01-05
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 2013-09-26
    相关资源
    最近更新 更多