WPFの解説書やインターネット上のドキュメントで、最小のWPFアプリケーションというものが存在します。
// MyApp.cs
using System;
using System.Windows; // the root WPF namespace ルートのWPF名前空間
namespace MyFirstWpfApp
{
class MyApp
{
[STAThread]
static void Main()
{
// the WPF message box WPFのメッセージボックス
MessageBox.Show("Hello, WPF");
}
}
}
[Cbris Sells, Ian Griffitbs]Programming WPF
英語の書籍ですが、出版年が古いので、Amazonマーケットプレースを利用すると古書を安価に手に入れることができる可能性が高いです。
類似のコードを良く見かけるので、おそらく有名なコードと思われるのですが、このコードをどうやって実行したら良いのか、わたしは、ずっとわかりませんでした。
最近、その実行方法について、説明がある書籍を見つけました。
[Charles Petzold]APPLICATIONS=CODE+MARKUP
英語の書籍ですが、出版年が古いので、Amazonマーケットプレースを利用すると古書を安価に手に入れることができる可能性が高いです。
xamlを使用せずに、C#コードでUIを作成する手法が説明されています。(得られたデータに応じたUIを作成するなど)プログラムで動的にUIを作成したり変化させるには、 多くの場合、C#コードでUIを作成することになるので、一読の価値があります。
その書籍内の説明を元にこのプログラムを実行して見ようと思います。
C#の不可解なライブラリの参照
C#で、書籍やmsdnなどインターネット上のサンプルコードを実行しようとすると、実行できないことがあります。C#の知識が技能が十分でなければ、実行できない原因が推測できないため、そのサンプルコードの実行や理解を諦めるしかありません。
その原因の多くは、C#のライブラリ参照にあると思います。C#で利用するライブラリは、usingディレクティブで指定します。しかし、それだけでは、使えない場合があります。使えない場合は、ソリューションエクスプローラーの参照から、参照を追加する必要があります。
アセンプリを選択肢、参照を追加します。追加する参照は、以下の4つです。
- PresentationCore
- PresentationFramework
- System
- WindowsBase
※.Net Frameworkの3.0と3.5の移行の間で、一部のスラス定義が、「System.Xaml」に分離されたようなので、古いサンプルプログラムで動作しないものがあれば、「System.Xaml」を追加してみましょう。
参考までに、WPFアプリケーション・テンプレートのプロジェクト参照は、以下のとおりです。
- Microsoft.CSharp
- PresentationCore
- PresentationFramework
- System
- System.Core
- System.Data
- System.Data.DataSetExtensions
- System.Net.Http
- System.Xaml
- System.Xml
- System.Xml.Linq
- WindowsBase
追加する参照が一覧に存在しなければ、Nugetライブラリから、使用するライブラリやツールキットをインストールする必要があります。インストールして、参照の一覧に追加された参照は、はじめから一覧にあったのか、何らかのライブラリやツールキットをインストールする事で使えるようになったのかを簡単に判断する方法はありません。
その問題を回避する仕組みが、プロジェクト・テンプレートです。プロジェクト・テンプレートごとに、必要な参照が追加された状態で利用できます。
しかし、サンプルコードには、どのプロジェクト・テンプレートを使って作成したのか、どの参照を使ったのか、追加のライブラリやツールキットのインストールが必要なのかの情報は、ほとんど併記されていません。サンプルコードを作成した人もそれを簡単に確認する方法がありません。
MSDNから、クラスの説明を調べたとき、アセンプリに指定された内容が、プロジェクト参照に追加する必要がある項目です。