2009-02-23 39 views
9

我爲我的公司創建了一個漂亮的花式winforms應用程序。我們有一個平面設計師創建GUI,這是一個痛苦的實施,所有圖形按鈕,大量的分層背景和標誌,動畫等。以圖形方式模板.NET winforms應用程序

但現在我的公司想要在不同的品牌下轉售它。但由於我的大部分都是,所以我告訴我更高級的我可以在一週內完成一個完全更名的版本。基本上我只需要在xml設置文件中改變一些設置,用新設置替換圖形,然後構建。

問題是,如果他們想5個或6個不同的品牌,我有5個不同的構建支持(我真的應該支持1,與DIFF模板)

的問題是它不容易(只要我知道)在Winforms應用程序中交換圖像。我將所有圖形資源放在一個文件夾中,但是一旦每個文件都輸入到Visual Studio中相應的圖像列表或容器中,更新它的唯一方法就是將其刪除並重新添加它,更改源文件夾不會導致嵌入式圖像刷新。這對於每一個構建來說都是令人難以置信的繁瑣,因此必須有一個更簡單的方法。

添加在:
所以經過一些進一步的調查,我卻靠在torwards某種RESX文件編輯器。然而,目前爲止我所看到的更多的是將字符串轉換爲各種語言,並且要麼非常弱,要麼根本不能編輯像bitmaps/png這樣的二進制資源。雖然如果您在xml查看器中打開resx文件(我使用記事本2並將.resx設置爲使用xml sytax高亮顯示),但MS非常友好地告訴您每種類型是如何編譯的(主要是基本版64的變體)

+2

太糟糕了,你正在做的WinForms,這將是WPF蛋糕。 – 2009-02-23 20:49:13

+0

該應用程序開始一點點在一年前,使用了大量的從一個版本中,我們近4年前一樣導入的代碼。不幸的是我沒有看到我們這次轉換到WPF。 – 2009-02-23 21:10:55

回答

12

我認爲你的目標應該是擁有「品牌化」的資源文件;你基本上是本地化你的應用程序,除了你只有幾個不同的英語版本。

您可以使用ResGen.exe和ResourceManager加載外部資源文件,因此您可以使用5個不同的「資源」文件,但保持代碼基礎相同。

這篇文章也可以幫助... http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/b388c700-0e07-452b-a19e-ce02775f78a6/

編輯: BTW,我將第二評論,如果你要通過努力在這個偉大的交易,考慮WPF ...最這些「圖形」元素可能本地完成,特別是如果它是漸變和東西,更不用說容易的模板。

-2

我認爲你應該考慮爲表單的動態替換區域創建用戶控件。在運行時,您可以將一個組件換成另一個組件。

+0

這是一個可怕的想法。一切都是圖形的。我希望將代碼保存在一個單一的地方。爲每個版本創建新程序集會讓我變得比現在更糟糕。 – 2009-02-23 20:46:15

0

我會做的只是從一個文件夾加載磁盤的所有圖形,並根據需要創建任何需要的圖像列表,而不是在設計器中執行此操作。如果您擔心有人會竊取圖形,那麼我會爲我的圖形創建一個簡單的文件格式(可能是加密的),併爲您或設計人員使用一個小型簡單應用程序將其轉換爲常規文件中的這種格式。然後,這只是在不同品牌之間交換此文件夾的問題。

0

如果您的大多數表單都是相似的(即相同的徽標,底部的相同按鈕等),則可以使用WinForms上的visual inheritance來定義一組「實際形式」繼承的「基本形式」。

如果您爲每個品牌開發一組「基本形式」,則每個集合都在一個單獨的裝配體中,您可以插入生成新品牌所需的工作,從而生成一組新的基本形式。

希望它可以幫助

0

它現在已經太晚了,但WPF本來比的WinForms一個更好的選擇,因爲它更容易皮膚。

但是看看什麼DevExpress確實爲的WinForms,因爲他們的控制有一個剝皮的系統。將DevExpress winform控件換成標準winform控件並不難。

相關問題