Windows Phone 7甚のアプリケヌションを最初から最埌たで䜜成したす。 パヌト5.ペヌゞ間の移動、ペヌゞレむアりト

前の郚分



アプリケヌションに耇数のペヌゞがある堎合、ナヌザヌがこれらのペヌゞ間を移動できるようにする必芁がありたす。



レむアりトの䜜成ずは、パネルを远加し、コントロヌルを配眮し、ペヌゞの目的の倖芳ず動䜜を実珟するプロパティを蚭定するプロセスです。



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

ペヌゞ間のナビゲヌション。



起動時およびシャットダりン時の自動ナビゲヌションに加えお、ナビゲヌションは通垞、ハむパヌリンクやボタンなどのナヌザヌむンタヌフェむスコントロヌルを䜿甚したり、ハヌドりェアの戻るボタンを抌したりした結果ずしお発生したす。 戻るボタンは、特別な凊理なしで自動的に戻りたす。



ペヌゞ間のナビゲヌションを実装する最も簡単な方法は、HyperlinkBut​​tonコントロヌルを䜿甚するこずです。 NavigationUriプロパティを䜿甚しお、目的のペヌゞに移動できたす。 次の䟋は、SecondPage.xamlずいう名前のペヌゞに移動する方法を瀺しおいたす。

< HyperlinkButton NavigateUri ="SecondPage.xaml" /> * This source code was highlighted with Source Code Highlighter .



  1. < HyperlinkButton NavigateUri ="SecondPage.xaml" /> * This source code was highlighted with Source Code Highlighter .



< HyperlinkButton NavigateUri ="SecondPage.xaml" /> * This source code was highlighted with Source Code Highlighter .



HyperlinkBut​​tonを䜿甚したくない堎合は、NavigationServiceクラスを䜿甚しおナビゲヌションを実装できたす。 このクラスには、ナビゲヌションに圹立぀いく぀かのプロパティ、メ゜ッド、およびむベントが含たれおいたす。 NavigationService.Navigateメ゜ッドを䜿甚しお、特定のペヌゞに移動できたす。 次のコヌドは、Navigateメ゜ッドを呌び出すアプリケヌションパネルのボタンをクリックするためのむベントハンドラヌを瀺しおいたす。





  1. private void FillupButton_Click オブゞェクト送信者、 EventArgs e
  2. {
  3. NavigationService.Navigate
  4. new Uri  " /views/FillupPage.xaml"、UriKind.Relative;
  5. }
*この゜ヌスコヌドは、 ゜ヌスコヌドハむラむタヌで匷調衚瀺されたした。
Navigateメ゜ッドは垞に、指定されたURIに新しいペヌゞむンスタンスを䜜成したす。 URIパラメヌタヌを远加しお、芁求されたペヌゞを指定された状態に初期化するこずもできたすFuel TrackerはURIパラメヌタヌでステヌタス情報を送信したせん。 ペヌゞ間でデヌタを転送する他のオプションには、アプリケヌションレベルのプロパティ、倖郚ナヌティリティクラス、たたはPhoneApplicationService.Stateプロパティの䜿甚が含たれたす。



戻るには、NavigationService.GoBackメ゜ッドを䜿甚しお、前のペヌゞむンスタンスに戻るこずができたす。 もちろん、これは[戻る]ボタンの機胜を耇補するため、他の機胜の䞀郚ずしおこのメ​​゜ッドを呌び出す可胜性が高くなりたす。



たずえば、Fuel Trackerアプリケヌションの自動車情報ペヌゞず絊油情報ペヌゞには、ナヌザヌが行った倉曎を保存し、抂芁情報を含む最初のペヌゞに戻る「保存」ボタンがありたす。 ナヌザヌが代わりに[戻る]ボタンをクリックするず、デヌタを保存せずに移行が戻りたす。 アプリケヌションは、ナヌザヌデヌタをリセットする前に垞に確認を求める必芁があるため、[戻る]ボタンが抌されたずいうむベントに応答するず䟿利です。 远加情報に぀いおは、「入力デヌタの怜蚌」セクションを参照しおください。



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

戻るたたはコンテキストメニュヌずダむアログボックスを非衚瀺にする[戻る]ボタンの動䜜のみを実装する必芁がありたす。 他のすべおの実装は犁止されおいたす。



ペヌゞレむアりト暙準パネル



Visual Studioで新しいWindows Phoneアプリケヌションプロゞェクトを䜜成するず、ペヌゞをマヌクアップするためのいく぀かのパネルず芁玠が自動的に取埗されたす。 マヌクアップの決定のほずんどは、ContentPanelに関連したす。 次の画像は、瞊向きのペヌゞの暙準パネルず芁玠を瀺しおいたす。



画像



XAMLの抂芁



Windows Phoneアプリケヌションのナヌザヌむンタヌフェむスは、Extensible Application Markup LanguageXAMLず呌ばれる宣蚀型マヌクアップ蚀語を䜿甚しお䜜成されたす。 XAMLは、共有クラスの定矩を介しおマヌクアップに参加する分離コヌドファむルを䜿甚しお、ナヌザヌむンタヌフェむス定矩をランタむムロゞックから分離できるXML圢匏のファむルです。 Webプログラミングに粟通しおいる堎合は、XAMLをHTMLずしお考えるこずができたすが、より匷力です。 HTMLず同様に、XAMLは芁玠ず属性で構成されたす。



Visual Studio 2010 Express for Windows PhoneおよびExpression Blend for Windows Phoneを䜿甚するず、コントロヌルをデザむナヌの衚面にドラッグアンドドロップし、配眮しお、芖芚的な方法でプロパティを蚭定できたす。 これらのツヌルは必芁なXAMLコヌドを生成するため、Windows Phoneアプリケヌションを䜜成するためにXAMLに関する広範な知識は必芁ありたせん。 それでも、䞀般的なアむデアは、XAMLコヌドを手動で倉曎する必芁があるず考える堎合に圹立ちたす。 Visual StudioのXAML゚ディタヌは、IntelliSenseずステヌトメントの完了ステヌトメントの完了を提䟛したす。 たた、XAMLが倉曎されるず、デザむナヌのむメヌゞが曎新されたす。 特定のアむテムに関するヘルプが必芁な堎合は、そのアむテムにカヌ゜ルを合わせおF1を抌し、そのアむテムのヘルプトピックに移動したす。



XAMLファむルでは、各ナヌザヌむンタヌフェむスオブゞェクトはXAML芁玠であり、このオブゞェクトのプロパティは属性を䜿甚しお蚭定されたす。 XAMLは、ナヌザヌむンタヌフェむスマヌクアップの子/芪の関係を暗黙的に枡したす。 次のXAMLコヌドは、画像ImageずテキストTextBlockを含むパネルStackPanelを衚瀺したす。 この䟋では、属性構文を䜿甚しおプロパティが蚭定されたす。





  1. <-車の写真ず名前.-->
  2. < StackPanel Orientation = "Horizo​​ntal" Margin = "12,130" Height = "110"
  3. VerticalAlignment = "Top" >
  4. < 画像の 高さ = "75" 幅 = "75" マヌゞン = "15" ストレッチ = "UniformToFill"
  5. ゜ヌス = "{Binding Picture}" />
  6. < TextBlock Text = "{Binding Name}" VerticalAlignment = "Center" />
  7. </ stackpanel >
*この゜ヌスコヌドは、 ゜ヌスコヌドハむラむタヌで匷調衚瀺されたした。
次の画像は、アプリケヌションの起動時にこのXAMLコヌドがどのように衚瀺されるかを瀺しおいたす。



画像



コントロヌルの配眮



Visual Studioツヌルボックスからデザむナヌ画面にアむテムをドラッグするだけで、マヌクアップの䜜成を開始できたす。 デザむンモヌドで䜕かを倉曎するずすぐに、XAMLコヌドが曎新されたす。 次の画像は、スナップラむン、グリッドラむン、マヌゞンラむンなど、Visual Studioがコントロヌルを配眮するために提䟛する芖芚的なむンゞケヌタヌの䞀郚を瀺しおいたす。



画像



デザむナヌのサヌフェス䞊でコントロヌルを移動する堎合、マヌゞン蚭定ず特定の高さず幅の倀を䜿甚しお、コントロヌルの正確な䜍眮ずサむズを決定したす。 コントロヌルからアプリケヌションの端たでの境界線は、フィヌルドが固定され、コントロヌルからアプリケヌションの端たでの距離が倉わらないこずを瀺したす。 どのフィヌルドが固定されおいるかは、アプリケヌションのサむズが倉曎されたずきにコントロヌルがサむズ倉曎たたは移動する方法に圱響する可胜性がありたす。



[プロパティ]りィンドりのフィヌルド゚ディタヌには、各フィヌルドの蚭定マヌゞンず、これがテキストボックステキストボックスの配眮に䞎える圱響が衚瀺されたす。 次の図は、フィヌルド゚ディタヌを瀺しおいたす。



画像



Canvasレむアりトコントロヌルを䜿甚しおコントロヌルを配眮するこずもできたす。 コントロヌルは、ピクセルで指定されたx座暙ずy座暙に基づいおCanvasに配眮されたす。



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

Canvasコントロヌルはピクセルベヌスのマヌクアップを䜿甚し、固定方向アプリケヌションで深く埋め蟌たれたネストされたコントロヌルに察しおGridコントロヌルよりも優れたパフォヌマンスを提䟛できたす。



コントロヌルの堎所が正確に指定されおいる堎合、テキストが予想よりも倧きい堎合、画像のサむズが異なる堎合、および瞊向きず暪向きの䞡方をサポヌトする必芁がある堎合、アプリケヌションのレむアりトが壊れる可胜性がありたす。 ダむナミックマヌクアップは、さたざたな状況でアプリケヌションの蚱容可胜な倖芳を保蚌する最良の方法です。



動的マヌクアップを䜜成する



ダむナミックは、コンテンツず向きに合わせおサむズ倉曎および適応するマヌクアップです。 アプリケヌションのロヌカラむズたたは暪向きのサポヌトを蚈画しおいる堎合は、動的マヌクアップを䜜成する必芁がありたす。



動的レむアりトを䜜成するには、通垞、パネルから掟生した次のいずれかのコントロヌルから始めたす。

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

グリッドは、アプリケヌションフレヌムを拡倧、瞮小、たたは回転する必芁がある堎合に最適です。



適切なレむアりトコントロヌルの遞択に加えお、方向に応じおコントロヌルが自動的に倉曎されるように指定できるプロパティ蚭定がいく぀かありたす。



動的レむアりトには2぀の重芁なサむズ蚭定がありたす。

動的な動䜜のStackPanelプロパティを蚭定するには

  1. 「Height」および「Width」プロパティを「 Auto 」に蚭定したす。これは、芪ペヌゞたたはパネルの幅たたは高さ党䜓を埋めるこずを意味したす。
動的な動䜜のグリッドプロパティを蚭定するには

  1. [プロパティ]りィンドりたたはデザむナヌを䜿甚しお、グリッドに行ず列を远加したす。
  2. 行ず列の自動サむズたたはアスタリスク*を指定したす。

    次の䟋は、Fuel Trackerアプリケヌションの車䞡情報ペヌゞにあるContentPanelずいう名前のグリッドコントロヌルを瀺しおいたす。 最初の3行の高さはAutoに蚭定され、4番目は*です。 ぀たり、最初の3行の高さはコンテンツのサむズによっお決たり、最埌の行が残りのスペヌスを占有したす。 最初の列の幅はAutoに蚭定され、2番目の列は残りのスペヌスを占有したす。





    1. < Grid.RowDefinitions >
    2. < RowDefinition Height = "Auto" />
    3. < RowDefinition Height = "Auto" />
    4. < RowDefinition Height = "Auto" />
    5. < RowDefinition Height = "*" />
    6. </ Grid.RowDefinitions >
    7. < Grid.ColumnDefinitions >
    8. < ColumnDefinition Width = "Auto" />
    9. < ColumnDefinition Width = "*" />
    10. </ Grid.ColumnDefinitions >
    *この゜ヌスコヌドは、 ゜ヌスコヌドハむラむタヌで匷調衚瀺されたした。
  3. Grid.RowプロパティずGrid.Columnプロパティを䜿甚するか、デザむナヌサヌフェむスの目的の堎所にドラッグしお、特定の行ず列に子コントロヌルを配眮したす。
  4. 必芁に応じお、Grid.RowSpanプロパティずGrid.ColumnSpanプロパティを䜿甚しお、耇数の行たたは列を子コントロヌルに割り圓おたす。
  5. コントロヌルの各固定マヌゞンを確認し、それらが必芁であるこずを確認したす。
  6. すべおのコントロヌルのサむズを考慮し、必芁に応じおHeightプロパティずWidthプロパティを削陀し、代わりにMinHeightプロパティたたはMinWidthプロパティを蚭定したす。
テキストコントロヌルのMinHeightプロパティずMinWidthプロパティを蚭定するず、テキストが刀読䞍胜になったずきにサむズに合わせおスケヌリングされなくなりたす。



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

15ポむントより小さいフォントの䜿甚は避けおください。 最初にSegoeフォントを䜿甚する必芁がありたす。



Fuel Trackerでは、ほずんどのコントロヌルはGridおよびStackPanelコントロヌルを䜿甚しお動的に配眮されたす。 次の画像は、グリッドを䜿甚する車の詳现ペヌゞを瀺しおいたす。 行ず列は、動的なディメンション自動およびアスタリスクで定矩されおいたす。 右偎の画像では、テキストサむズが倧きくなり、レむアりトが自動的に調敎されおいるこずがわかりたす。



画像



次の郚分



All Articles