2013-06-12 58 views
2

我是GUI開發新手,我知道在Winforms和WPF之間轉換之前已經得到解決。然而,作爲一名新手,我還不清楚最佳的前進方向,我非常感謝你的幫助。更高效地將WinForms轉換爲WPF或將WPF轉換爲Winforms

我基本上有兩個SDK示例代碼,我試圖結合。一個示例代碼是用winforms編寫的,另一個是用WPF編寫的。正如我設想我的最終產品包括動畫,我相信我應該將winforms代碼翻譯成WPF(如果您不同意,請糾正我)。然而,它是一個複雜而冗長的代碼,由於我對WinForms比較舒服,所以我想知道我是否應該考慮使用WPF來翻譯並使用Open GL控件。什麼是最有效的方式?從winforms示例代碼中,我需要DataGrid和WPF中的數據,我需要訪問當前顯示在WindowsFormsHost上的512x512實時圖像。

非常感謝您提前幫助您!

+1

如果您不知道自己的經歷,您正在談論的示例代碼或您正在嘗試做什麼,那麼很難提供建議。 –

+0

我想從Winforms轉換爲WPF的代碼來自Samples/winformsSample文件夾中的[link](http://www.naturalpoint.com/optitrack/downloads/developer-tools.html)。我幾乎沒有C#的經驗,但感謝這個網站和24小時的WPF書,我學得很快。我試圖將來自運動跟蹤攝像機的數據(標記的x,y和Z位置數據,顯示在DataGridView中的示例代碼)與實時圖像數據結合起來,以構建3D體積數據。謝謝你的幫助! @DourHighArch – FunkDoc

+0

如果你不需要動畫視覺效果或任何眼睛的UI,我建議你去Winforms。它簡單快速的開發時間。否則,如果你有一個團隊,你必須確保你的團隊成員知道WPF。 – Cheung

回答

2

您將使用WPF所允許的分離保存的時間值得從winforms切換。我想不出爲什麼你應該退步(不是說沒有理由,但是,

你甚至可以用windows forms wpf wrapper做到這一點,然後,一旦你有所有的轉換,你可以刪除任何包裝,這將是一個完整的WPF應用程序

SO question about advantages of WPF to winforms

5

我是新來的GUI開發

我必須警告你,WPF有一個非常陡峭的學習曲線。我會盡可能地說它不適合那些沒有經驗的人。

的Winforms和WPF

之間轉換的問題是不是代碼本身。問題是它寫的心態:

  • WPF中絕對不需要所有「傳統」的winforms代碼。

  • 在WPF中,有數據綁定(當然,實際上的WinForms有一些所謂的綁定,但比起WPF這是可笑的(不亞於任何事情的WinForms其他)。這完全消除了需要在創建或操作任何UI元素程序代碼,一切都在XAML定義,然後數據綁定到相應的模型和的ViewModels。這就是爲什麼有一個在爲此所需的心態的巨大差異。

    • 在的WinForms,UI存儲有關它的信息的狀態。爲了要讀取/檢索/修改此信息,您必須以代碼訪問這些UI元素。
    • 在WPF中,ViewModel和Model(您創建的用於存儲數據的簡單類,根本不綁定到UI)存儲此狀態信息。爲了讀取/檢索/修改這些信息,你不能訪問代碼中的UI元素。

的WPF可視樹比的WinForms X,Y的做法非常複雜得多。因此,抓住一些深深埋藏在其中的UI元素,假設中使用的DataTemplateDataTemplate之內,用作DataGridCellTemplate,這是你真正不想涉及的。相信我。

我建議你閱讀@Rachel的Excellent Explanation和鏈接的博客文章,以更好地理解從笨拙,無聊,太多代碼爲一切winforms世界轉變到美麗,可定製,可擴展,愉快的世界XAML和DataBinding(適用於所有基於XAML的技術WPF,WinRT,Silverlight,Windows Phone等)。

正如我設想我的終端產品,包括動畫

如果你是即將開始(或啓動)的新產品,忘記的WinForms。它已經死了。除了默認的醜陋的東西外,它不支持任何東西。它不能被定製/動畫/美化,而不會訴諸很多可怕的黑客。

每個人都會告訴你,winforms僅用於維護傳統應用程序,但不再是任何啓動任何嚴肅項目的人的選擇。

然而,一個複雜和漫長的代碼和我相對更舒適的WinForms

一旦你學會了MVVM,你會很快認識到WPF需要做任何事情所需要的代碼的10%的WinForms。您複雜冗長的代碼(可能代碼隱藏)將被簡化爲簡單屬性和INotifyPropertyChanged。這就是你在WPF中編碼的方式。

+0

Downvoter,關心評論?事實上,你不喜歡我的答案並不會減少真實性。 winforms是一個蹩腳的恐龍。 –

+0

這是一個很好的答案。 –

+0

謝謝@HighCore!我被賣了,WPF肯定是要走的路。我很欣賞這種學習曲線非常陡峭,而且會很痛苦,但我認爲這是值得的。它是一個恥辱,我不能投票。 – FunkDoc