2013-09-23 20 views
13

私はWinFormsで作成した小さなプログラムを持っていますが、今度はWPFを使用して再度作成したいと思います。WinFormアプリケーションをWPFアプリケーションに変換する

私はWPFには新しく、XAMLでできることは何でも、コードなしで行うこともできます。

もちろん、Winformsを使用しているときにはXAMLがありません。 winformsアプリケーションで使用したWPFアプリケーションに同じコードを使用して同じ結果を得ることはできますか?または、XAMLを作成して編集する必要がありますか? XAMLを使用する場合と使用しない場合の利点は何ですか?

また、Winformsを使った過去の経験を考慮して、私は何とかWinFormsで動作するデザインと実装について考えていますが、WPFには適していません。

+2

なぜそれをWPFで再作成しますか? –

+2

@SystemDown私はあなたの質問から分かっているように、WPFをかなり新しくしています。非常に小さくてプロフェッショナルなものでなければ、Winformsを使用している人はほとんどいません。WPFについてもう少し詳しく検討したいと思います。 –

+1

これは経験を学ぶことになるので、私はちょうど最初からものを作り直すだろう。あなたはより多くを学び、直接翻訳があなたにもたらすことができる落とし穴を避けます。 –

答えて

23

WPFでwinformsのコードを再利用することはできません。

でも可能であっても、そうしないでください。あなたはXAMLで行うことができますどんな

、あなたはまた、あなたは、はるかに、より専門的な方法である、実際にUIを定義するためにXAMLを使用して、DataBindingMVVMを使用する必要があり、それなし

を行うことができます従来の手続き型winformsアプローチよりも開発が容易です。

XAMLを使用しない場合は、XAMLを使用するよりも面倒です。最初は怖かったかもしれませんが、本当にすばらしいことです。

Winformsの

を使用しているときにXAMLを持っていないもちろん

いいえ、もちろんありません。 winformsは何もサポートしていない本当に古い技術です。だから、Visual Studioデザイナーを作ったのです。そうしないと、何も役に立たない膨大な量の膨大なコードが必要になるため、誰もwinformを使用していないでしょう。

私は winformsアプリケーションで使用したWPFアプリケーションと同じコードを使用して同じ結果を得ることができますか?

おそらく、いくつかのクラス名とそれ以外のものを適用することによって、おそらく、恐ろしいwinformsのようなコードを削除しているWPFが提供する主な利点を失うでしょう。

のWinformsを使用して、過去の経験を考慮すると、私は何とか私は はWinformsのために働いたことの設計と実装を考えている方法を変更するが、WPFのためにその適切ではありません でしょうか?

はい。 WPFはMVVMをサポートしており、従来のwinformsアプローチとはまったく異なる考え方が必要です。

winformsからWPFへのアップグレードについては、Rachel's Excellent Postを読むことを強くお勧めします。

+1

リンクした投稿に注目しました。記事へのリンクや、あなたがおすすめしていない記事はありますか? 私はhttp://www.wpftutorial.net/でこのチュートリアルを読むことを開始しました。 それも良い出典であるかどうか知っていますか? –

+0

@YonatanNir先ず、私はレイチェルの資料(上記リンク先)に行くことをお勧めします。 –

1

XAMLを使用しないでWPFコントロールを作成しようとすると、問題が発生する可能性があります。MVVMパターンの周りにフレームワーク全体が構築されているため、ビューは手続き型ではなく宣言的に記述する必要があります。 C#とXAMLで同じUIオブジェクトを作成することは間違いありませんが、C#ではUIの状態が変化したときにフレームワークがどのように動作するかを知る必要があります。反面、XAML(WPFがあなたが想定していると指示する)を行うと、物事は一般的にうまく更新され、無限のバグを回避する必要はありません。短い「はい」ではコードで行うことができますが、「いいえ」ではコードでコードを実行することはできません。

2

私はWinformsアプリケーションをWPFに直接変換しようとしましたが、フレームワークと常に戦っているため、必要以上の問題が発生します。 MVVMとデータバインディングを読み、それを使用してください。そのWPFは何のために設計されており、テスト容易性などのいくつかの利点があります。実際には、いくつかの単純な概念(データバインディング、ビューモデルなど)でかなり長い道のりをつかむことができますし、知識を広げることもできますが、まずMVVMとWPFでのデータバインディングを理解することをお勧めします。

MVVMLightを使い始めるには良いフレームワークが必要ですが、フレームワークがなくても基礎が書ける価値があります。 http://reedcopsey.com/series/windows-forms-to-mvvm/

+0

私はhttp://www.wpftutorial.net/でこのチュートリアルを読むことを開始しました。 これはその話題に関する良い出典であるかどうか知っていますか? –

1

は、実際に、それはあなたのプロジェクトがどのように複雑に依存します:

は私がリードcopseyからの投稿の本に良いセットを覚えているようです。非常に小さなプロジェクトでは、この「変換」を非常に簡単に行うことができます。しかし、WPFの開発はしばしばMVVM/Prismに基づいているため、多くの利点があります。 また、UIの動作が異なる場合があります。これは、プロジェクトの複雑さによって異なります。

関連する問題