VS 2005でXAMLプログラムを開発する


Visual Studio 2005を使用してXAMLプログラムを開発する場合、上記の手動でXAMLプログラムを作成するプロセスと比較して便利です.WinFXテンプレートを直接選択して、特定のタイプのWPFプログラムを作成することができます.Visual Studioは、WPFプログラムのプロジェクトファイルとアプリケーションリストを自動的に作成します.作成できるWPFプログラムのタイプは、次の4つです.
1. WinFX Wndows Application2. WinFX Web Browser Application3. WinFX Service Library4. WinFX Customer Control Library
しかしながら、WinFX向けに開発されたVisual Studioバージョンはまだ正式に発売されていないため、Visual Studio 2005はWinFXプログラム開発に関するいくつかの改善サポートが不足しているため、XAMLと対応するコードバックグラウンドファイル(.xaml.cs)を編集する際に、開発者が手動で編集する必要がある場合がある.
ここではXAMLを実行するために必要なソフトウェア環境をインストールしたと仮定し、Visual Studio 2005を使用してWPFプログラムを作成します.WinFX Wndowsアプリケーションテンプレートを選択するか、WinFX Web Browserアプリケーションテンプレートを選択するかは、ブラウザにホストするプログラムかフォームプログラムかによって異なります.「新規プロジェクト」ダイアログボックスのWinFX Web Browser Applicationテンプレートで、WPFプログラムのプロジェクト名を入力し、プログラムがハードディスクに保存されている場所を選択し、「OK」ボタンをクリックすると、Visual Studioが自動的にこのWPFプログラムのデフォルトのXAMLとコードバックグラウンドファイルを生成します.
ヒント:Visual Studioを使用するかどうかにかかわらず、WinFX WndowsアプリケーションとWinFX Web Browserアプリケーションを作成するときは、それぞれです.xamlファイルコードにはまだわずかな違いがあります.1つのBrowserアプリケーションでは、デフォルトの開始ページのルート要素はPageです.一方、Wndowsアプリケーションでは、デフォルトの開始ページのルート要素はWindowです.一方、Windowクラスは、ブラウザで実行されているWPFプログラムが信頼されている一部の砂箱内で操作されているため(砂箱はクライアントコンピュータが悪意のあるアプリケーションから侵害されることを防止することができる)、新しいWindowsフォームを開く権限がないため、Browserアプリケーションでは使用できません.
ソリューションエクスプローラウィンドウでは、Visual Studioが現在のWPFプログラムに対して自動的に生成されるXAMLおよびコードバックグラウンドファイルが表示されます.Visual Studioでは、対応するプロジェクトファイルが自動的に生成されるため、Browser Applicationの生成時の実装の詳細を詳細に理解する必要はありません.ただし、WPFプログラムとアプリケーション定義ファイルは、関連するXAMLページファイルと関係があるため、各ファイルの具体的な内容を詳しく知ることが望ましい.以下、ソリューションエクスプローラのファイルアイコンをダブルクリックすることで、対応するファイルを開き、黙認状態で1つを開く.xamlファイルには、設計試行、XAML試行、ソースコード試行の3つの試行方法があります.該当するXAMLコードを表示する場合は、XAMLボタンをクリックしてXAML試行状態に切り替えることができます.これはアプリケーション定義ファイルを開くAppです.xamlの対応するインタフェース:
XAML試行ボタンをクリックすると、App.xamlページに対応するXAMLコードは以下の通りです.

01 <Application x:Class="BrowserDemo.App"

02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

04 StartupUri="Page1.xaml"

05 >

06 <Application.Resources>

07

08 </Application.Resources>

09 </Application>


 
1行目のコードでは、アプリケーション定義ファイルでApplication要素が使用され、x:Classプロパティで関連付けられたC#不完全クラス(後のプログラムリストの14行目のコードに示す)が指定され、プログラムのコンパイル時にアプリケーション定義ファイルと関連付けられたC#不完全クラスを含むコード後置ファイルの2つの部分が自動的に結合されます.完全なBrowserDemoネーミングスペースの下のAppクラスを作成します.注意してください.BrowserDemo.Appクラスは、WPFから提供するSystemである.Windows.アプリケーションクラスから派生したもの.4行目のコードはStartupUriプロパティを使用して、WPFプログラムの最初の実行時にロードするXAMLページファイルを指定します.
1つのBrowser ApplicationタイプのWPFプログラムでは、複数のXAMLページを追加し、これらのページ間のジャンプと切り替えをサポートできます.
ヒント:
そしてApp.xaml.csのコードは次のとおりです(App.xamlページのSourceボタンでソース試行に切り替えることができます).

01 using System;

02 using System.Windows;

03 using System.Windows.Navigation;

04 using System.Data;

05 using System.Xml;

06 using System.Configuration;

07

08 namespace BrowserDemo

09 {

10  /// <summary>

11  /// Interaction logic for App.xaml

12  /// </summary>

13

14  public partial class App : Application

15  {

16

17  }

18 }


Page1.xamlページに対応するXAMLコードは以下の通りです.

01 <Page x:Class="BrowserDemo.Page1"

02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

04 Title="Page1"

05 >

06 <Grid>

07 </Grid>

08 </Page>


1行目のコードでx:Class属性で指定したBrowserDemo.Appクラスは、WPFから提供するSystemである.Windows.アプリケーションクラスから派生し、プロパティTitleでページの表示時のタイトルを指定します.6-8行目のコードにはGrid要素が使用されています.マイクロソフトは、XAMLページの各インタフェース要素をレイアウトするために開発者にこの要素を推奨しています.これは、Grid要素がページ上の各要素を位置決めする上で大きな柔軟性を持っているためです.この要素の具体的な使い方については、本章の後続章で説明します.

01 using System;

02 using System.Collections.Generic;

03 using System.Text;

04 using System.Windows;

05 using System.Windows.Controls;

06 using System.Windows.Data;

07 using System.Windows.Documents;

08 using System.Windows.Input;

09 using System.Windows.Media;

10 using System.Windows.Media.Imaging;

11 using System.Windows.Navigation;

12 using System.Windows.Shapes;

13

14 namespace BrowserDemo

15 {

16  /// <summary>

17  /// Interaction logic for Page1.xaml

18  /// </summary>

19

20  public partial class Page1 : Page

21  {

22

23 public Page1()

24 {

25  InitializeComponent();

26 }

27

28  }

29 }


今私たちはこのBrowser ApplicationのPage 1にいます.xamlページにボタンを追加し、そのボタンのクリックイベントにイベント処理方法を追加して情報を表示します.まず、ツールボックスにButtonコントロールをドラッグしてXAMLビューに切り替えると、...の2つの要素の間にButton要素が追加されていることがわかります.対応する属性を設定することができます.最終的にPage 1.xamlのコードは次のとおりです.

01 <Page x:Class="BrowserDemo.Page1"

02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

04 Title="Page1"

05 >

06 <Grid>

07 <Button Height="100" Width="300" FontSize="24" Background="Aqua"

08 Name="MyButton" Content="Click Me" Click="ChangeMe" >

09 </Button>

10 </Grid>

11 </Page>


ボタンのクリックイベントを処理するため、対応するイベント処理方法を作成します.コードは次のとおりです.

01 void ChangeMe(object sender, RoutedEventArgs eventArgs)

02 {

03  count++;

04  MyButton.Content = "You have clicked " + count + " times!";

05 }


上記のコードに示すように、ボタンをクリックするたびに、そのボタンに表示される内容が変化します(countの値が1ずつ増加します).
イベント処理コードは一般的にXAMLページに対応するコード後置ファイルで作成されます.イベント処理コードをPage 1に追加します.xamlページのコード後置ファイルPage 1.xaml.csでは、変更後のコードは以下の通りです.

01 using System;

02 using System.Collections.Generic;

03 using System.Text;

04 using System.Windows;

05 using System.Windows.Controls;

06 using System.Windows.Data;

07 using System.Windows.Documents;

08 using System.Windows.Input;

09 using System.Windows.Media;

10 using System.Windows.Media.Imaging;

11 using System.Windows.Navigation;

12 using System.Windows.Shapes;

13

14 namespace BrowserDemo

15 {

16  /// <summary>

17  /// Interaction logic for Page1.xaml

18  /// </summary>

19

20  public partial class Page1 : Page

21  {

22 int count = 0;

23 public Page1()

24 {

25  InitializeComponent();

26 }

27

28 void ChangeMe(object sender, RoutedEventArgs e)

29 {

30  count++;

31  MyButton.Content = "You have clicked " + count + " times!";

32 }

33  }

34 }


22行目にcountという変数を定義し,その値を0に初期化した.28行目のコードではButtonボタンのイベント処理方法であるが、ここでのイベント処理方法名ChangeMeはPage 1である.xamlのButton要素のClickで指定します.1つのWPFプログラムに複数のButton要素が含まれる可能性があるため、XAMLファイルでこのButton要素の名前をName属性で指定できます.ここではMyButtonです.その後、対応するコードの後置ファイルにこのButton要素を適用する場合は、この要素を宣言する必要はありません.また、コンパイル時、Button要素の宣言と対応するイベント処理方法は、BrowserDemo.Page1.
ヒント:要素と対応する処理方法、論理を追加すると、以前と同様にVisual Studioで生成することができます.NETアプリケーション方式でWPFプログラムを生成します.つまり、Visual Studioメニューの「生成」-「XXの生成」(プロジェクト名)コマンドを使用してプログラムをコンパイルし、コンパイルが完了すると、そのプログラムをテスト、デバッグ、配備することができます.
ファイルの最後の変更を保存した後、「デバッグの開始」ボタンを使用してこのBrowser Applicationプログラムを生成し、最後に得られた表示効果は以下の通りです.
下の図はボタンを10回クリックした後の表示効果です.
上述の全実現過程は、XAMLページはASPに似ているので、NET開発者にとってはよく知られているはずです.NETのWebフォームは、プログラムを構築するためのインタフェースレイアウトです.XAMLページに対応するコード後置ファイルなどはASPに類似する.NETでイベントやユーザ要求情報を処理するサーバ側コード.
先に述べたように、Visual Studioを使用してWPFプログラムを作成する場合、開発者がプロジェクトファイルを作成する必要はなく、マイクロソフトの次世代統合生成プラットフォームMSBuildの動作も考慮する必要はありません.上記の必要なファイルはVisual Studioによって自動的に開発者に生成されます.WPFプログラムのアプリケーション定義ファイルとXAMLページファイルを考慮するだけでいいです.
(担当編集火鳳凰[email protected] TEL:(010)68476636-807)