2012-01-07 8 views
3

私はC#を学びたいと思っています。誰もがWinFormsの使用からWPFの使用に切り替えるようです。 WPFアプリケーションは、Formsを構築するために使用される.XAMLファイルを使用するため、私にとってははるかに複雑に思えます。WPFアプリケーションでXAMLを使用する必要がありますか?

私が実際に関与する前に尋ねているのは、XAMLファイルがWPFアプリケーションを構築する唯一の方法ですか?簡単な方法はありますか?あなたが基本的にコードで作業するFormオブジェクトを持っているので、私はWPFアプリケーションを構築するのが最善だろうと思っています。

+3

WinFormsが好きな人は、それらを使用してください。それが普及しているのでスイッチしないでください、あなたがそれからいくつかの恩恵を得るならば、スイッチを切ってください。 – JohnFx

+0

WPFを学ぶつもりなら、* the *リソースとしてMSDNをお勧めします。 [WPFの概要](http://msdn.microsoft.com/en-us/library/ms754130.aspx)とリンク先のすべてのページでは、最も重要なことを知る必要があります。 –

答えて

9

XAMLはものを作る多くの場合、それはより読みやすく、宣言的であるため、使用方法がわかっていれば簡単にとなりますが、好きなだけC#コードで(ほとんど)何かを行うことができます。

<Border BorderBrush="Red"> 
    <TextBlock Text="Lorem Ipsum"/> 
</Border> 

var border = new Border(); 
border.BorderBrush = Brushes.Red; 
var textBlock = new TextBlock(); 
textBlock.Text = "Lorem Ipsum"; 
// The following step is implicit in XAML via the structure 
border.Child = textBlock; 

これは、より簡潔かつ階層的にすることができますが:

new Border 
{ 
    BorderBrush = Brushes.Red, 
    Child = new TextBlock 
    { 
     Text = "Lorem Ipsum" 
    } 
}; 

一般的に、私は常にXAMLを使用することをお勧めします、理由は次のとおりです。

  • パーサーはツリー構造を最適化しますWPFのレイアウトシステムに従って。
  • コード内にDataTemplatesを作成することはサポートされていません。 FrameworkElementFactoriesを使用した構成は、XamlParserを使用することを推奨しています(XAML文字列をコード内でゆっくりと処理することをお勧めしません)。
  • UIとコードの分離。
5

XAMLは、確かにWPFアプリケーションを構築する唯一の方法ではありません。いくつかのツールを実行した後、XAML自体は実際にUIを構築するために使用されるC#/ ILに翻訳されます。あなたがまったく同じコードを書いて手でWPFフォームを作成するのを止めるものは何もありません。

私はこのアプローチをとらないように注意します。 XAMLは確かにWPFアプリケーションを構築するためのツールです。それはWebサンプルの大部分になります。手作業でコード化されたWPFアプリケーションのサンプルはずっと少なくなっています。

+0

XAMLはILに変換されますか?そのBAMLに変換されます。あなたは確認できますか? – Learner

2

コードビハインドですべてをビルドできますが、XAML ISは、WPFアプリケーションを簡単に構築する方法です。このようにすることも、プログラムロジックからの視点を分離するのに役立ちます。理想的には、WPF開発チームは、物事のXAML(または視覚的側面)を担当するプログラマー/デザイナーから構成されます。彼らはアニメーションやその他の視覚的要素を作成していました。プログラミングロジックとデータモデルタイプのものを担当する少なくとも1人の "正常な"開発者のことです。もちろん、これは理想的な世界ではありません。

2

いいえ、あなたは@HB以外ではありません。それがより簡単になると述べている。

Visual StudioのようなIDEを使用している場合は、WinFormsと同じように、デザイナとExpression Blendがあります。圧倒的なXAMLが最初に見つかったのであれば、XAMLにまっすぐに進むのではなく、おそらくそれをプレイしてください。

1

はい、純粋なWPFを記述できますが、推奨しません。

Petzoldの本Application = Code + Markupは、XAMLを使用する前にコードから純粋なWPFを使用しています。すぐに手に入れられ、サンプルコードがウェブサイトに表示されます。 online on the Safari ebook siteもありますので、試用アカウントで数週間無料で読むことができます。彼の本は、XAMLなしでWPFを教える非常に深刻な試みです他の多くの書籍のXAML重いアプローチとは対照的に、は対照的です。

VS2010のビジュアルエディタは以前のものよりもはるかに優れているため、インターフェイスを作成するために多くのXAMLを理解する必要はありません。 Expression Blendツールを使用して、インターフェイスを作成するための「デザイナーのアプローチ」を利用できるかどうかを確認することもおすすめします。

WPFには、操作を選択した場所に柔軟性があります。コード中心のアプローチを取って、レイアウトやスタイリングにXAMLを使用しましたが、データとコマンドをコードにバインドしました。これにより、より洗練されたスタイルのXAMLが提供され、XAMLでバインディングを指定する方法のニュアンスを知る必要がなくなります。学習曲線を緩和するために、私はそのアプローチから始めることをお勧めします。

また、MVVMパターンをMVVMLiteなどのフレームワークで使用することをお勧めします。このフレームワークは、多くのインフラストラクチャを提供し、GUIとロジックの分離を支援します。

関連する問題