2012-05-09 99 views
1

我創建了一個包含50個表單的C#應用​​程序。winform to GTK#for Mono

不幸的是單聲道(Mac OS版本)不符合標準的窗口WinForm的工作。

我不知道爲什麼,但我這一刻我需要解決的問題。

唯一的解決辦法似乎轉換winform中GTK#,但我沒有在GTK#任何經驗。

我的問題是:

  • 有多難轉換我50種形式GTK#?
  • 我需要做什麼?

這是一個簡單的解決方案?或者我需要重新編寫我的應用程序?

除了這個,我不知道在哪裏可以找到/使用可視化IDE做了設計修改像Visual Studio IDE。

+0

重寫到另一個GUI框架是不容易的。也許你應該關注爲什麼單聲道不起作用,它應該與winform相當兼容。 – CharlesB

+0

Mono的WinForms支持實際上可以在Linux上運行。如果它在OS X上失敗,你應該報告錯誤。如果Mono人修復它們,那麼你不必切換到另一個UI堆棧。 http://www.mono-project.com/WinForms –

回答

1

GTK是一個非常好的框架,在Windows和Linux,GTK#是很容易通過手工或使用monodevelopdesign寫。所以,如果你很好奇它是值得一試,GTK#應用程序通常是easier to find help for(GTK +的文檔非常有用)

約GTK#的最好的事情是自動佈局,沒有更瘋狂的面板佈局或絕對定位類似在winforms中。

我很好奇,但爲什麼你的WinForms應用程序無法正常工作,Mono的WinForms的支持是相當不錯的,非常接近精確匹配.NET。你有什麼錯誤?

+0

在MAC OS上winform出現太多錯誤,應用程序不穩定,無法解決此問題。可能我的問題沒有意義,因爲從winform遷移到GTK#肯定不容易,需要時間。 – user1320370

+0

這聽起來像你有一些錯誤,並應報告給單聲道的人,如果winforms應用程序在.Net上工作,winforms部分應該在OSX或Linux上同樣適用。你使用什麼版本的單聲道? – IanNorton

+0

該應用程序在.net和mono上適用於windows,但不適用於MAC。我問過單聲道論壇,他們確認我單板winform GUI不能在MAC上工作。 – user1320370

0

我曾與在單聲道的WinForms的問題是,在文件「xyz.designer.cs」經常會有代碼:

((System.ComponentModel.ISupportInitialize)(xyz)).BeginInit(); 

((System.ComponentModel.ISupportInitialize)(xyz)).EndInit(); 

看起來像單不接受此代碼。 我的印象是,這個代碼可以從大多數窗體中刪除。但我不確定。 確保「xyz.designer.cs」文件無法在Visual Studio下修改,因爲此代碼是由GUI設計器自動創建的。 但是你可以在Monodevelop下修改這些文件。 看起來您需要手動更新50個文件。