入力された住所の位置をBing Mapsに表示する
Page Transition効果の追加
TurnstileTransitionm(画面が右から左に回転するトランジッション)のコードを追加します。Page Transtionの詳細については、「これから始めるWindows Phone 7 プログラミング(基本編)」の「第3回 ページ遷移時にTransition効果を適用する」を参照してください。App.xaml.vb内の
RootFrame = New PhoneApplicationFrame()
の部分を、
RootFrame = New TransitionFrame
と書き換えることを忘れないようにしてください。
<toolkit:TransitionService.NavigationInTransition> <toolkit:NavigationInTransition> <toolkit:NavigationInTransition.Backward> <toolkit:TurnstileTransition Mode="BackwardIn"/> </toolkit:NavigationInTransition.Backward> <toolkit:NavigationInTransition.Forward> <toolkit:TurnstileTransition Mode="ForwardIn"/> </toolkit:NavigationInTransition.Forward> </toolkit:NavigationInTransition> </toolkit:TransitionService.NavigationInTransition> <toolkit:TransitionService.NavigationOutTransition> <toolkit:NavigationOutTransition> <toolkit:NavigationOutTransition.Backward> <toolkit:TurnstileTransition Mode="BackwardOut"/> </toolkit:NavigationOutTransition.Backward> <toolkit:NavigationOutTransition.Forward> <toolkit:TurnstileTransition Mode="ForwardOut"/> </toolkit:NavigationOutTransition.Forward> </toolkit:NavigationOutTransition> </toolkit:TransitionService.NavigationOutTransition>
コードを追加すると全体に波線がかかり、エラーとなってしまいます。この波線を解除するには、以下の手順に従います。
(1):VS2010メニューの「プロジェクト(P)/参照の追加(R)」から、
Microsoft.Phone.Controls.Toolkit
を追加します。
「.NET」タブ内にMicrosoft.Phone.Controls.Toolkitが見当たらない場合は、
「Silverlight for Windows Phone Toolkit - Nov 2011.msi」
をインストールしている場合なら、「参照」タブから、
C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Toolkit\Oct11\Bin
フォルダにある、Microsoft.Phone.Controls.Toolkit.dll を指定して[OK]ボタンをクリックします(図6)。
図6:「参照」タブからMicrosoft.Phone.Controls.Toolkit.dllを指定した(クリックで拡大) |
(2):toolkitという名前空間を指定します。
要素内に属性として、
xmlns:toolkit=”
と入力すると値の一覧が表示されますので、その名から
Microsoft.Phone.Controls(Microsoft.Phone.Controls.Toolkit)
を選択します(図7)。
「プロジェクト(P)/参照の追加(R)」から、Microsoft.Phone.Controls.Toolkitを追加していなければ、この値は表示されませんので、注意してください。
図7:toolkitという名前空間を指定する(クリックで拡大) |
書き出されるXAMLコードは省略します。
Windows Phone 縦向きのページ(MapPage.xaml)の追加
VS2010メニューの「プロジェクト(P)/新しい項目の追加(W)」と選択して、「Windows Phone 縦向きのページ」を選択し、「名前(N)」にMapPage.xamlと指定して、[追加(A)]ボタンをクリックします。このページには、入力した住所の場所が表示されます。
表示されるエミュレーターデザイン画面上の、ApplicationTitleというx:Nameの、TextBlockコントロールのTextプロパティに「Windows Phone Tips」と指定します。また、PageTitleというx:Nameを持つTextBlockを削除します。ツールボックスからButtonコントロールを1個とMapコントロールを配置します。ButtonコントロールのContentプロパティには「航空写真」と指定しておきます。プロパティの[ブラシ]パネルにあるBackgroud(背景色)にCrimson、Foreground(文字色)にWhiteを指定しておきます。
書き出されるXAMLコードをリスト2のように編集します。
リスト2 編集されたXAMLコード(MapPage.xaml)
(1)Bing Maps Account Centerより取得したApplicationIDを指定します。ApplicationIDを指定していないと、実行時にMap上にエラーが表示されます。 <phone:PhoneApplicationPage x:Class="AddressSearchForMap.MapPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480" Language="ja-JP" shell:SystemTray.IsVisible="True" xmlns:my="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"> <!--LayoutRoot は、すべてのページ コンテンツが配置されるルート グリッドです--> <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--TitlePanel は、アプリケーション名とページ タイトルを格納します--> <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> <TextBlock x:Name="ApplicationTitle" Text="Windows Phone Tips" Style="{StaticResource PhoneTextNormalStyle}"/> </StackPanel> <!--ContentPanel - 追加コンテンツをここに入力します--> <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <Button x:Name="Button1" Content="航空写真" Margin="0,18,0,608" Height="70" Background="Crimson" /> <my:Map Height="611" HorizontalAlignment="Left" Margin="18,79,0,0" Name="Map1" VerticalAlignment="Top" Width="423"> <my:Map.CredentialsProvider> <my:ApplicationIdCredentialsProvider ApplicationId=" Bing Maps Account Centerより取得したApplicationID " /> ■(1) </my:Map.CredentialsProvider> </my:Map> </Grid> </Grid> <!--ApplicationBar の使用法を示すサンプル コード--> ~コード略~ </phone:PhoneApplicationPage>
「入力された住所の位置をBing Mapsに表示する」サンプルプログラム