【问题标题】:Dynamically generated GUI动态生成的 GUI
【发布时间】:2011-06-12 05:20:44
【问题描述】:

我正在开始初步设计要在我的组织中使用的通用应用程序。该程序需要同时具有通用性和专业性。它将包含所有工作流通用的小部件和各个工作流的独特小部件(或输入约束)。为避免出现 97 种不同的一次性,我们计划为每个工作流构建一组模式。在运行时,用户将从服务器中选择他们的模式,GUI 会为他们的工作流程抛出正确的小部件。

这是一个 C# 应用程序,将在 .Net 和可能的 Mono 中运行。这意味着我们正在研究 GTK#,以及 XAML 和 MonoMac。

我们考虑为我们的目标 GUI 工具包编写 XSLT。例如:

  • 将我们的 XSD 转换为 libglade XML 的 Glade XSLT。

  • 用于将我们的 XSD 转换为 XAML 的 XAML XSLT。

  • 其他工具包的通用 XML 格式,不支持 GUI 的声明性语法。

  • 一个类库,用于直接读取 XSD 并生成 GUI。

所以,我的问题是,这已经存在了吗?是否有一些适用于 GTK# 和 libglade 或 WPF 和 XAML 的工作流工具包。

【问题讨论】:

    标签: c# wpf user-interface gtk#


    【解决方案1】:

    查看System.Windows.DataTemplate,它可以被 WPF 自动使用(参见属性 DataType)。我认为您可以提取所有 UI 块,这些块将用于生成 UI,然后实现 ViewModels 和适当的 DataTemplates。结果 UI 将是这个块的复合视图模型。

    【讨论】:

    • 我知道模板。虽然很有用,但它并没有解决 XSLT 以获取正确的 XAML。它不是跨平台的。如果我最终以 WPF 而不是 GTK 为目标,那么模板很可能是我使用的工具之一,但两者之间必须有很多粘合剂。
    【解决方案2】:

    我使用 XML 做了同样的事情。我正在做的是将每个控件的属性集写到一个 XML 文件中,然后再从中读取并重新生成窗口。

    Some problems I met while doing so

    但我能够完成它。无论如何,我想WPF更好。但是,如果您想要一个想法,我想我只是给了您。 (虽然可能不是最好的主意)

    祝你好运

    【讨论】:

    • 我并没有真正尝试保存控件的属性。这是相似的。但我正在尝试定义一组给定工作流所需的输入。这部分将放在 XSD 中。 GUI 获取 XSD 本身或为其获取 XSLT。然后它基于 XSLT 转换中的 XAML 或 libglade XML 或通过从 XSD 创建 GUI 来生成 GUI。
    猜你喜欢
    • 2012-05-16
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多