2011-08-16 9 views
1

私はPanoramaコントロールを持っており、PanoramaItemsは次のテンプレートを使用してコントロールにプログラムで追加されています。Silverlight/Wp7でクリックすると、コンテナをコンテナからポップアップしてフルスクリーンにする方法はありますか?

<UserControl> 
    <Grid x:Name="LayoutRoot"> 
      <controls:PanoramaItem Name="sitePanoramaItem" Header="{Binding Name}"> 
      <Controls:DockPanel VerticalAlignment="Stretch"> 
       <StackPanel Orientation="Horizontal" Margin="0,10,0,0" Controls:DockPanel.Dock="Top"> 
        <Image Source="../Images/action.png" Width="64" /> 
        <TextBlock Text="{Binding Stats, Mode=TwoWay}" FontSize="45" Margin="15,0,0,0" /> 
       </StackPanel> 
       <Grid x:Name="graphCanvas" HorizontalAlignment="Stretch" Margin="10,10,10,10"> </Grid> 
      </Controls:DockPanel> 
     </controls:PanoramaItem> 
    </Grid> 
</UserControl> 

私は私がやりたいものをgraphCanvasをクリックみかんgraphCanvasアウトをポップし、私はそれがあった場所に復元もう一度クリックすると、そのフルスクリーン表示です。私はこのサイトとGoogleの全面に行きました。私が探しているものに似たものは見つかりませんでした。

まだパノラマコントロールの機能を維持して、graphCanvasが表示されているだけですが、それらを確認することができます。現在、私はDockPanelからグリッドを削除し、sitePanoramaItemを崩壊させている間にLayoutRootに直接入れるという点で、それを使っています。しかし、それはパノラマの名前がまだ表示されているので全画面ではありません(私もそれを隠すことができると思います...)graphCanvas戻るint彼はDockPanelキャンバスのサイズはすべてねじ込まれています。

私はもっと簡単な方法があると思っていました。

それは可能ですか?

+0

これは私が思っていた以上の痛みでした。 – Buildstarted

答えて

1

graphCanvasをページにして別のXAMLに入れることができます。今すぐgraphCanvasを持っている場所と同じ場所にInnerFrameという名前のフレームを追加し、InnerFrameでそのページに移動します。フレームがクリックされると、アプリケーションのRootFrameを使ってgraphCanvasページに移動します。あなたがそれを閉じることを決めたら、RootFrameを使って戻ることができます。

はそれが十分に明らかだホープ:)

編集:WP7で ナビゲーションのSilverlight 4での標準的なナビゲーションのような非常に似ていますが、それはもう少し限定的です。

<phone:PhoneApplicationFrame x:Name="Frame" /> 

これは基本的にSilverlightフレームと同じですが、次のようにPhoneApplicationFrameをXAMLにスローします。作成したすべてのページは、デフォルトでPhoneApplicationPageから継承されているため、変更なしでフレームに表示できます。

アプリケーション全体が実際にPhoneApplicationFrameで実行されます。あなたのアプリケーションクラスを見てみましょう場合は、この表示されます。

public PhoneApplicationFrame RootFrame { get; private set; } 

Here's the MSDN documentation for the navigation system on WP7

+0

私は同様の質問でフレームについて読んだことがあります。しかし、誰も彼らがwp7にあったものをよく参照していませんでした。フレームはかなり一般的なので、Googleはどちらもあまり与えることはありません。 – Buildstarted

+0

私は質問を編集し、ナビゲーションシステムとMSDNの参考情報についていくつかの情報を追加しました。私はフレームを使っていくつかのWP7アプリケーションを持っています。もっと情報が必要な場合は、私に知らせてください。 – alf

2

をあなたが記述UIを作成することが可能であるが、簡単なことはないだろう。コードの中でそれを削除し、LayoutRootを追加してパノラマを非表示にして、正しい軌道に乗っています。ただし、スクロールの動作を自分でコーディングする必要があります。これは非常に難しくなります。特に、パノラマへの道のりを感じさせます。

実際に試してみることができるトリックは、パノラマの上部にPivotControlをレイヤーして、デフォルトで折り畳まれるようにします。また、テンプレートを編集してデフォルトのコンテンツをすべて削除します(例:ヘッダーコントロールを削除し、余白を0に設定するなど)。次に、フルスクリーンにしたいときは、PanoramaアイテムからすべてのgraphCanvasesを削除し、Pivo​​tControl内の新しいPivotItemに追加することができます。次に、パノラマを非表示にしてピボットを表示します。これにより、無料のスクロール機能とフルスクリーンの錯覚が得られます。

私はこれをお勧めすると確信しています。より一般的なアプローチは、ユーザーがアイテムを選択してフルスクリーンのアスペクトを扱うとき(別の場合は、スクロールのために再びPivotコントロールを使用して)、別のページにナビゲートすることです。また、「フルスクリーン」モードを終了する場合は、最初のページに戻るだけです。この方法では、フルスクリーン状態のトゥブロックストーン処理がずっと簡単になります。

+0

ええ、私はまだナビゲーションに傾いていますが、いいインターフェースだと思っていました。私は間違いなく、これはたわごとを与えるつもりです。 – Buildstarted

関連する問題