宇宙仮面の
C# Programming

 

WPFWPF〜XAML と C#

開発環境: Visual Studio 2008

1.目的

.NET Framework 3.0 では、WPF (Windows Presentation Foundation)、WCF (Windows Communication Foundation)、(Windows Workflow Foundation、Windows Cardspaceが追加されました。Visual Studio 2008では、さらに.NET Framework 3.5として拡張がなされます。これらの機能は .NET Framework 2.0へのアドオンとして定義されていますが、従来のプログラミングスキームを根本的に変えるレベルでの変更がなされていると思います。

ここでは、.NET Framework 3.0/3.5、Visual Studio 2008をベースとした新世代のプログラミング環境で、どのようなことができるのか調査していきます。

2.参考書

(1) XAMLプログラミング

3.Windows Presentation Foundation (WPF)

 

3.1 WPF アプリケーションの種類

WPFでは、スタンドアロン アプリケーション(Windows アプリケーション) と XAML ブラウザ アプリケーション (XBAP)の2種類がサポートされます。  

3.1.1 WPF スタンドアロン アプリケーション

スタンドアロンアプリケーションでは、Windows アプリケーションより、 WPF の機能を利用することができます。

XAML

<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">

<Grid>

<
Button Height="23" Margin="0,28,44,0" Name="button1" VerticalAlignment="Top" HorizontalAlignment="Right" Width="75" Click="button1_Click">Button</Button>

<
TextBlock Height="21" HorizontalAlignment="Left" Margin="17,30,0,0" Name="textBlock1" VerticalAlignment="Top" Width="120" />

</
Grid>

</
Window>

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
  /// <summary>
  ///
Window1.xaml
  /// </summary>
  public partial class Window1 : Window
  {
   
public Window1()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
      textBlock1.Text =
"Hello World!";
    }
  }
}

Wpf Windows アプリケーションの展開には、次のように ClickOnce テクノロジーを使用することもできます

http://uchukamen.com/WPF/StandAlone/publish.htm

注意: .NET Framework 3.5 Beta が必要になります。

3.1.2 XBAP〜 XAML Browser Application

XBAPでは、ブラウザより WPF の機能を利用することができます。次のイメージをクリックすると、ブラウザが開きます。

XBAP

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<Grid x:Name="LayoutRoot">
<TextBox VerticalAlignment="Top" Height="172" Text="XBAP XAML Browser Application" TextWrapping="Wrap" FontSize="48"/>
</Grid>
</Page>

3.1.3 Loose XAML

独立したXAML ファイルだけでも、ブザウザ上で視覚コンテンツを表示することができます。しかし、ボタンのイベントハンドラなどの記述を行うことはできません。

Loose XAML の例  WpfPon.xaml

3.1.4 Loose XAML in IFRAME

アプリケーションと一緒にコンパイルされることはなく、Web サーバー上では独立したファイルとして存在する XAML ファイルだけでも、ブラウザで視覚コンテンツを表示することができます。

当然ながらボタンのイベントハンドラなどの記述を行うことはできませんが、簡単に WPF の視覚効果を得ることができます。

Loose XAML の例

<iframe src="XAML.xaml">WpfPon.xaml</iframe>


3.2 WPFのコントロール

レイアウト

コンポーネントのレイアウトを行うためのPanel、Grid など

コントロール

ボタン、テキストボックスなど、よく使うコントロール

3.1 2D グラフィックス

Shape, Geometry

直線、四角、楕円などの Shape や、Geometry など

Brush、画像、ビデオ

SolidColorBrush, LinearGradientBrushなど、またビデオ再生

3.2   3D グラフィックス

ZAM 3Dを使って 3D XAMLを作る

3D XAML を作成する支援ソフトとして、ZAM 3Dというソフトがあります。このソフトにより、簡単な3D XAMLを作成することができます。しかし、日本語での情報はあまりないので、簡単な使い方を紹介します。