2011-01-20 58 views
7

我正在開始針對在我的組織中使用的通用應用程序的初步設計。該計劃需要同時具有通用性和專業性。它將包含所有工作流程所共有的小部件和各個工作流程的獨特小部件(或輸入約束)。爲了避免出現97次不同的一次性事件,我們計劃爲每個工作流程構建一組架構。在運行時,用戶將從服務器中選擇他們的模式,GUI將爲他們的工作流程拋出正確的小部件。動態生成的圖形用戶界面

這是一個C#應用程序,它將在.Net和可能的Mono中運行。這意味着我們正在研究GTK#,除了XAML和MonoMac。

我們考慮爲我們的目標GUI工具包編寫XSLT。例如:

  • Glade XSLT將我們的XSD轉換爲libglade XML。

  • XAML XSLT將我們的XSD轉換爲XAML。

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

  • 一個類的庫,用於直接讀取XSD並生成GUI。

所以,我的問題是,這是否已經存在?是否有一些工作流工具包用於GTK#和libglade或WPF和XAML。

回答

1

請看System.Windows.DataTemplate,它可以被WPF自動使用(請參閱屬性DataType)。我認爲你可以提取所有UI塊,這些塊將用於生成UI,然後實現ViewModels和適當的DataTemplates。結果UI將成爲這個塊的複合視圖模型。

+0

我知道模板。雖然有用,但它並沒有解決XSLT到達正確的XAML的問題。它不是跨平臺的。模板可能是我使用的工具之一,如果我最終的目標是針對WPF而不是GTK,但是它們之間必須有大量的膠水。 – Nate 2011-01-20 07:10:18

0

我用XML做了同樣的事情。我正在做的是將每個控件的屬性集合寫入一個XML文件,然後再從中讀取並重新生成窗口。

Some problems I met while doing so

但我能完成它。無論如何,我猜WPF是更好的。但如果你想要一個想法,我想我只是給你。 (雖然不是最好的主意)

好運

+0

我並不是真的想爲控件保存屬性。它是相似的。但是我試圖定義一組給定工作流所需的輸入。這部分將在XSD中進行。 GUI抓取XSD本身或XSLT。然後,它會根據XSLT轉換中的XAML或libglade XML或通過從XSD創建GUI來生成GUI。 – Nate 2011-01-20 07:14:47