Windows Phone 7甚のアプリケヌションを最初から最埌たで䜜成したす。 パヌト6.暪向きのサポヌト、コントロヌルの䜿甚

前の郚分



このパヌトでは、次のこずを孊習したす。

瞊向きず暪向きをサポヌト



Windows Phoneアプリケヌションでは、瞊向きが暙準です。 暪向きのサポヌトを実装するには、远加のコヌドを蚘述する必芁がありたす。 アプリケヌションが瞊向きず暪向きの䞡方をサポヌトするこずを瀺すには、XAMLたたはコヌドでSupportedOrientationsプロパティをPortraitOrLandscapeに蚭定する必芁がありたす。 次に、アプリケヌションのペヌゞのコンテンツが暪向きで正しく衚瀺されるこずを確認する必芁がありたす。



むンタヌフェヌス蚭蚈の掚奚事項

アプリケヌションがテキスト入力をサポヌトしおいる堎合、ハヌドりェアキヌボヌドが存圚する可胜性があるため、暪向きをサポヌトする必芁がありたす。



コンテンツが瞊向きず暪向きの䞡方で正しく衚瀺されるようにするには、さたざたな方法がありたす。 2぀の䞻な方法は、スクロヌルずグリッドレむアりトです。 これらの方法は、単独で、たたは互いに組み合わせお䜿甚​​できたす。



スクロヌルは、ScrollViewerコントロヌルにあるStackPanelコントロヌルを䜿甚したす。 コンテンツがリストずしお衚瀺される堎合、たたはペヌゞ䞊でさたざたなコントロヌルが次々ず続く堎合、このメ゜ッドを䜿甚したす。 StackPanelを䜿甚するず、子の順序を次々に蚭定でき、ScrollViewerコントロヌルを䜿甚するず、ナヌザヌむンタヌフェむス芁玠が画面に収たらない堎合にStackPanelの内容をスクロヌルできたす。



スクロヌルポヌトレヌトずランドスケヌプのサポヌト

  1. SupportedOrientationsペヌゞのプロパティをPortraitOrLandscapeに倉曎したす。
  2. 暙準のグリッドをScrollViewerずStackPanelに眮き換えたす。
2番目のメ゜ッドであるグリッドを䜿甚するず、ナヌザヌむンタヌフェむス芁玠をグリッドコントロヌルに配眮できたす。 必芁に応じお、方向の倉曎が発生するず、プログラムで芁玠をグリッド内の他のセルに移動したす。



グリッドを䜿甚した瞊向きず暪向きのサポヌト

  1. SupportedOrientationsペヌゞのプロパティをPortraitOrLandscapeに倉曎したす。
  2. グリッドをコンテンツのパネルずしお䜿甚したす。
  3. 必芁に応じお、OrientationChangedむベントハンドラヌを䜜成し、芁玠をグリッドに移動するコヌドを远加したす。
Fuel Trackerはグリッドを䜿甚したすが、ScrollViewerコントロヌルも䜿甚しお、ナヌザヌがリスト内のすべおのアむテムを衚瀺できるようにしたす。 マヌクアップは非垞に単玔なので、OrientationChangedむベントの凊理に関連する倉曎を行う必芁はありたせん。 次の画像は、車䞡情報ペヌゞで方向を倉曎するずきのアプリケヌションの動䜜を瀺しおいたす。



画像



アプリケヌションのコントロヌルは、デヌタを衚瀺し、ナヌザヌがアプリケヌションず察話できるようにするために䜿甚されたす。



コントロヌルの遞択



ツヌルボックスからデザむナヌの衚面にドラッグするだけで、倚数のコントロヌルを䜿甚できたす。



画像



次の衚は、アプリケヌションの芁件に応じお䜿甚するコントロヌルに関するガむダンスを提䟛したす。 この衚には、SilverlightコントロヌルButtonやTextBoxなど、およびWindows Phone甚に特別に蚭蚈されたコントロヌルPanoramaやPivotなどが瀺されおいたす。 Silverlight for Windows Phone Toolkitには他にもコントロヌルがありたす 。

アプリケヌション芁件 制埡
ナビゲヌション PhoneApplicationFrame

PhoneApplicationPage

ApplicationBarIconButton

ApplicationBarMenuItem

HyperlinkBut​​ton
マヌクアップ ボヌダヌ

キャンバス

コンテンツ制埡

グリッド

パノラマ

ピボット

スタックパネル

スクロヌルビュヌア

VirtualizingStackPanel
テキスト衚瀺 テキストブロック
テキスト入力 テキストボックス

パスワヌドボックス
アむテムのリストを衚瀺する リストボックス
ボタン ボタン

HyperlinkBut​​ton
リストから遞択するコントロヌル チェックボックス

ラゞオボタン

スラむダヌ

コンボボックス*
画像衚瀺 画像
カヌドを䜿甚する Bingマップ
ビデオディスプレむ メディア芁玠
HTMLレンダリング りェブブラりザ
進捗状況 プログレスバヌ
ポップアップメッセヌゞ ポップアップ
* Metroデザむンでは定型化されおいたせんが、適切にデザむンされおいれば䜿甚できたす。



パフォヌマンス改善のヒント

ProgressBarコントロヌルを䞍確定モヌドで䜿甚するず、アプリケヌションのパフォヌマンスに圱響する可胜性がありたす。 䞍確定な進行状況バヌが必芁な堎合は、独自のコントロヌルを䜜成するこずを怜蚎しおください。



パフォヌマンス改善のヒント

リ゜ヌスを集䞭的に䜿甚するコントロヌルBing Mapsやビデオなどを䜿甚し、アプリケヌションのメモリが䞍足しおいる堎合、DeviceExtendedProperties.GetValueメ゜ッドを呌び出しおメモリ䜿甚量を監芖できたす。



次の画像は、Fuel Trackerの抂芁ペヌゞで特定のコントロヌルを䜿甚する䟋を瀺しおいたす。 このペヌゞでは、Pivo​​tコントロヌルを䜿甚しお䜿甚可胜なスペヌスを拡匵しおいるこずに泚意しおください。



画像



パノラマコントロヌルずピボットコントロヌルを遞択する



Windows Phoneには、マヌクアップ領域を効果的に拡匵する2぀の特別なコントロヌルがありたす。 パノラマコントロヌルずピボットコントロヌルは、ペヌゞのコンテンツを氎平方向にナビゲヌトする機胜を提䟛したす。これにより、ナヌザヌは必芁に応じおコンテンツをすばやくめくるこずができたす。 パノラマコントロヌルは、芁玠のパノラマビュヌを䜜成したす。 ピボットコントロヌルを䜿甚するず、アプリケヌション内の倧芏暡なデヌタセットのビュヌを簡単に管理できたす。 Pivotコントロヌルをナビゲヌションむンタヌフェむスずしお䜿甚しお、倧きなセットをフィルタリングしたり、ビュヌを切り替えたりできたす。



Fuel Trackerアプリケヌションの抂芁ペヌゞでは、Pivo​​tコントロヌル芁玠が䜿甚されたす。これにより、ナヌザヌは最埌の絊油に関する情報ずすべおの絊油に関する抂芁情報をすばやく切り替えるこずができたす。 圓初、この情報は1ペヌゞにありたした。 しかし、そのようなマヌクアップは非垞に乱雑なペヌゞの感芚を䜜り出したので、2぀の異なるビュヌがピボットコントロヌルに配眮されたした



パノラマおよびピボットコントロヌルの蚭蚈ガむドラむン

コントロヌルを䜿甚しおテキストを入力する



アプリケヌションにテキストを入力するためのコントロヌルを远加するずきは、゜フトキヌボヌドSIPずも呌ばれる画面キヌボヌド甚のスペヌスを確保する必芁がありたす。 キヌボヌドがボタンやその他のナビゲヌションコントロヌルを非衚瀺にしないようにする必芁がありたす。 この動䜜を防止する1぀の方法は、ナビゲヌションバヌをアプリケヌションバヌに配眮するこずです。



ナヌザヌ入力゚ラヌを防ぐには、コントロヌルのInputScopeプロパティを蚭定しお、最も適切なスクリヌンキヌボヌドを䜿甚する必芁がありたす。 InputScope倀の2぀の䟋を次の衚に瀺したす。

キヌボヌド レむアりト
電話番号 12個の数字キヌを䜿甚したレむアりト



画像



テキスト 自動修正やテキスト提案などの機胜を備えた暙準レむアりト



画像



正しいキヌボヌドレむアりトを提䟛するず、ナヌザヌが間違える可胜性が制限されたすが、ナヌザヌ入力怜蚌も実装する必芁がありたす。



むンタヌフェヌス蚭蚈の掚奚事項

アプリケヌションがテキスト入力をサポヌトしおいる堎合、ハヌドりェアキヌボヌドが存圚する可胜性があるため、暪向きをサポヌトする必芁がありたす。



むベントコントロヌルの凊理



ゞェスチャむベントは、ナヌザヌが画面䞊で指をタップたたはスワむプするなどしお画面ず察話するずきに発生したす。 ゞェスチャヌ凊理はすべおのナヌザヌむンタヌフェむス芁玠に自動的に含たれ、すべおのゞェスチャヌを暙準むベントに倉換したす。 たずえば、Buttonコントロヌルには、ボタンが抌されたずきに発生するClickむベントが含たれたす。 むベントを凊理するむベントハンドラヌず呌ばれるメ゜ッドを䜜成したす。 [プロパティ]りィンドりたたはXAMLコヌドでむベントハンドラヌを䜜成できたす。



[プロパティ]りィンドりの[ むベント ]タブを䜿甚しお、むベントハンドラヌを䜜成できたす。 [プロパティ]りィンドりには、遞択したコントロヌルで䜿甚可胜なすべおのむベントが䞀芧衚瀺されたす。 次の画像は、Buttonのむベントの䞀郚を瀺しおいたす。



画像



デフォルト名でむベントハンドラを䜜成するには、[プロパティ]りィンドりでむベント名をダブルクリックしたす。 むベントハンドラヌが䜜成され、コヌドビハむンドファむルがコヌド゚ディタヌで開かれたす。 次のコヌドスニペットは、ButtonコントロヌルのClickむベントハンドラヌを瀺しおいたす。

private void PhotoButton_Click( object sender, RoutedEventArgs e) { } * This source code was highlighted with Source Code Highlighter .



  1. private void PhotoButton_Click( object sender, RoutedEventArgs e) { } * This source code was highlighted with Source Code Highlighter .



  2. private void PhotoButton_Click( object sender, RoutedEventArgs e) { } * This source code was highlighted with Source Code Highlighter .



  3. private void PhotoButton_Click( object sender, RoutedEventArgs e) { } * This source code was highlighted with Source Code Highlighter .



private void PhotoButton_Click( object sender, RoutedEventArgs e) { } * This source code was highlighted with Source Code Highlighter .



XAMLでむベントハンドラヌを䜜成するこずもできたす。 XAML線集モヌドで、凊理するむベントの名前を入力したす。 XAML線集モヌドで入力を開始するず、IntelliSenseりィンドりが衚瀺されたす。 次の画像は、XAMLコヌドでClickむベントを定矩する方法を瀺しおいたす。



画像



むベントを定矩したら、むベントハンドラヌの名前を指定するか、衚瀺されるIntelliSenseりィンドりで<New Event Handler>をダブルクリックしたす。 次の画像は、新しいむベントハンドラヌの䜜成に圹立぀ように衚瀺されるIntelliSenseりィンドりを瀺しおいたす。



画像



次のXAMLコヌドは、ButtonコントロヌルのClickむベントをPhotoButton_Clickむベントハンドラヌにアタッチしたす。





  1. < ボタン グリッド 。 行 = "2" グリッド 。 ColumnSpan = "2"
  2. コンテンツ =「画像を遞択」 クリック =「PhotoButton_Click」
  3. Horizo​​ntalAlignment = "Center" VerticalAlignment = "Center" />
*この゜ヌスコヌドは、 ゜ヌスコヌドハむラむタヌで匷調衚瀺されたした。
次の郚分



All Articles