はじめに
前回 は、Windows Mobile 6.5の.NET Compact Frameworkを使って図形を描きました。SilverlightではXMLを使って、より手軽にビジュアルに富んだユーザーインターフェースを描くことができます。今回は、前回書いた基本的な図形をXAML使って描いてみましょう。
……その前に、第11回 にて紹介しましたWindows Phone Developer Tools CTPの新しいバージョンのものが4月29日にリリースされています。以前のバージョンのものは既に削除されているようです。
「Visual Studio 2010の製品版に対応」とは書いているのですが、どうもVisual Studio 2010 日本語版では、Windows Phone 7向けのSilverlightプロジェクトのテンプレートが表示されません。従来通り、Developer Toolsに含まれているVisual Studio 2010 Express(英語版)を使用する必要がありそうですね。以降は、このバージョンを使用しての説明となります。
Shapeオブジェクトを使用して図形を描画
図形を描画するためのプロジェクトを作成します。Visual StudioのStart Pageから「New Project...」を選択して、Windows Phone Applicationプロジェクトを作成します。プロジェクト名は「ShapeApplication」としました。使用しないTextBlockなどは削除し、Gridのみを残しました。
<phoneNavigation:PhoneApplicationPage
x:Class = "ShapeApplication.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phoneNavigation = "clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Navigation"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d" d:DesignWidth = "480" d:DesignHeight = "800"
FontFamily = "{StaticResource PhoneFontFamilyNormal}"
FontSize = "{StaticResource PhoneFontSizeNormal}"
Foreground = "{StaticResource PhoneForegroundBrush}" >
<Grid x:Name = "LayoutRoot" Background = "{StaticResource PhoneBackgroundBrush}" >
</Grid>
</phoneNavigation:PhoneApplicationPage>
Shapeオブジェクトを使用して図形を描画します。ShapeオブジェクトはUI要素のひとつで、基本的なコントロールと同様にパネル上に配置することができます。ここでは、Gridに対して図形を配置することとします。
図1 Silverlight for Windows Phoneでの代表的なShapeオブジェクト
線の描画を行う
まずは線を引いてみましょう。線を引くには、Lineを使用します。線の描画開始座標X1・Y1と終了座標X2・Y2を指定し、2点の座標間に直線を表示します。Strokeプロパティに色を、StrokeThicknessプロパティには線の太さを指定します。
<Line Stroke = "White" X1 = "20" Y1 = "40" X2 = "400" Y2 = "40" />
<Line Stroke = "OrangeRed" StrokeThickness = "5" X1 = "100" Y1 = "60" X2 = "440" Y2 = "60" />
<Line Stroke = "Green" X1 = "40" Y1 = "80" X2 = "400" Y2 = "120" />
StrokeDashArrayプロパティに線分の長さを指定して破線を配置します。StrokeDashCapプロパティにて線分の終端部分の形状を指定します。指定可能な形状は以下の4つです。
Flat 直線の最後の点より先に延長しないキャップ
Round 高さが線の太さと等しく、長さが線の太さの半分に等しい四角形
Square 高さが線の太さと等しく、長さが線の太さの半分に等しい四角形
Triangle 線の太さが底辺の長さに等しい直角二等辺三角形
<Line Stroke = "DeepPink" StrokeDashCap = "Triangle" StrokeDashArray = "5" X1 = "60" Y1 = "140" X2 = "340" Y2 = "140" />
図2 線の描画
矩形の描画を行う
矩形を描画するには、Rectangleを使用します。塗り潰した矩形を表示する場合には、Fillプロパティに色を指定します。
<Rectangle Stroke = "DeepPink" Margin = "20,80" Width = "200" Height = "200" />
<Rectangle Fill = "Purple" Margin = "54,206,226,394" Width = "200" Height = "200" />
.NET Compact Frameworkでは、2ステップの段階を踏まないと実装できませんでした。枠つきの矩形もSilverlightでは簡単に描画ができます。以下のXAMLでは、Fillプロパティに黄色、Strokeプロパティに白色の矩形です。
<Rectangle Fill = "Yellow" Stroke = "White" StrokeThickness = "5" Margin = "234,190,46,410" Width = "200" Height = "200" />
図3 矩形の描画
円の描画を行う
円を描画するには、Ellipseを使用します。Widthプロパティに表示する円の縦方向の直径、Heightプロパティに表示する円の横方向の直径を指定します。円を描くにはStrokeプロパティ、塗りつぶした円を描くのはFillプロパティに色を指定します。
<Ellipse Stroke = "White" Margin = "102,320,140,254" />
<Ellipse Fill = "Aquamarine" Width = "300" Height = "300" Margin = "134,436,46,64" />
図4 円の描画
多角形の描画を行う
多角形を描画するには、Polygonを使用します。Pointsプロパティに各頂点の座標を指定すると多角形を表示します。
<Polygon Fill = "White" Width = "300" Height = "300" Points = "150,0 0,300 300,300" />
図5 三角形の描画
Microsoft Expression Blend 4を使ってみる
先程、図形を描画するために書いていたXAMLは、Visual Studioのコードエディタ上からXAMLを編集して図形を表示していました。Silverlightは表現の豊かな美しいグラフィックで見る人を惹きつけます。
ただVisual Studio 2010 for Windows Phoneに備わっているデザイナでは力不足な部分があります。ユーザーインターフェースをデザインするツールMicrosoft Expression Blendを使うことでその力不足な部分を補うことが可能です。
またExpression Blend単体でもアプリケーションを開発することは可能です。ビヘイビア機能を使うことで、ユーザー操作に対応するアクション、アニメーションなどをコードを書かずにドラッグ&ドロップだけで設定できます。
Microsoft Expression Blend 4のインストール
Windows Phone 7用開発ツールが発表された時点では、Beta版だったMicrosoft Expression Blend 4もRC(製品候補)版がリリースされました。インストールの仕方からご紹介したいと思います。
図6 ソフトウェアライセンスに読んだらAcceptボタンを押下します。
図7 プロダクトキーを入力します。hereと書かれたリンクテキストをクリックするとブラウザが開きます。
図8 Expression Studioのトライアル用のプロダクトキーが取得出来ます。キーワードを入力してください。
図9 正しいキーワードが入力出来たらトライアル用プロダクトキーが表示されます。このキーを先ほどのテキストボックスに入力します。
図10 キーが無事認証されたら、Nextボタンを押下しましょう。
図11 しかしここでトラブルが発生しました。Expression Blend 3 SDKがインストールされていると競合してExpression Blend 4をインストールすることができません。
図12 コントロールパネルからExpression Blend 3 SDKをアンインストールします。
図13 競合が解決されました。Installボタンを押下してください。インストールを開始します。
図14 これでExpression Blendのインストールは完了です。お疲れ様でした。
引き続き、Expression BlendでWindows Phoneアプリケーションを開発するためのアドインをインストールします。
Microsoft Expression Blend Add-in Preview for Windows Phoneのインストール
Expression Blend Add-in Preview for Windows Phoneをインストールします。インストールファイルは以下のURLからダウンロードすることができます。基本的にNextボタンを押下するだけですので、説明については割愛させて頂きます。
図15 Expression Blend Add-in Preview for Windows Phoneのインストール画面
Microsoft Expression Blend Software Development Kit (SDK) Preview for Windows Phoneのインストール
Expression Blend SDK Preview for Windows Phoneをインストールします。Windows Phone向けのビヘイビアを開発することができます。
インストールファイルは以下のURLからダウンロードすることができます。基本的にNextボタンを押下するだけですので、説明については割愛させて頂きます。
図16 Expression Blend SDK Preview for Windows Phoneのインストール画面
Expression Blend 4を使って図形を描画する
Expression Blend 4を使っても図形を描画することができます。では早速インストールしたExpression Blend 4を起動しましょう。
図17 ProjectsタブのNew Project...を選択します
図18 Windows Phone Applicationを選択します
図19 アセットからシェイプをドラッグ&ドロップします
図20 グリッドに円が配置されます
簡単に図形が描けるのが判ると思います。
さいごに
Expression Blendにも、Intellisenseに対応したコードエディタも搭載されていますが、Visual Studioほど使い勝手が良くはありませんので、Windows Phone 7アプリケーション開発では、ロジックを書くのにVisual Studioを使用して、ユーザーインターフェースをデザインするのにExpressionを使うのが主流になるのではないかと考えています。
今回は以上で終わりです。ありがとうございました。