2011-02-07 9 views
0

私はここに状況があります。 ListBoxを含むページがあります。 Webサービスからデータを取得できる場合、ListBoxにはItemsが設定されます。ユーザーが自分の電話機にネットワーク接続していない場合、またはWebサービスが[OK]ステータスで応答しない場合、[再試行]オプション付きのポップアップを表示するか、[OK]を選択して同じページに留まる愚かに聞こえるが)。今、私はキャンバスを使用。このために:WP7でリストボックスをオーバーラップするキャンバスにフォーカス

<Canvas Name="Nonetwork" Height="150" Width="280" HorizontalAlignment="Center" VerticalAlignment="Center" Background="DodgerBlue" Visibility="Collapsed" Margin="111,160,92,160" > 
    <TextBlock VerticalAlignment="Top" Height="120" Width="280" Text="No Network is currently availabe" TextAlignment="Center" TextWrapping="Wrap" Foreground="White" FontSize="28" /> 
    <Button Margin="30, 80" Height="60" Width="100" Content="OK" FontSize="18" Click="Ok_Click"/> 
    <Button Margin="150, 80" Height="60" Width="100" Content="Retry" FontSize="18" Click="Retry_Click"/>     
</Canvas> 

だけでなく、あなたのほとんどは、人が推測していた経験を、キャンバスがリストボックス内部に埋め込まとネットワーク接続がないときはアクセスできません。だからキャンバスに空白のページがありますが、ユーザーは[OK]または[再試行]をクリックできません。助けてください

私はこの問題を解決するための他のアプローチがある場合は教えてください。私はポップアップを試みたが、私はそれがユーザコントロールページであるのでポップアップからメインページにナビゲートする。任意のヘルプは高く評価されています

答えて

1

まあ、私はリストボックスの下に私のキャンバスを配置し、問題は解決されました。私は、XAMLでのコントロールの位置付けが非常に効果があることを知らなかった...

0

要素がSilverlightでレンダリングされる順序は、まず、ビジュアルオブジェクト階層に表示される場所によって決定されます。 ZIndexプロパティ。

Canvasには、要素のデフォルトのレイヤーをオーバーライドするために使用できるZIndexという名前の3番目のアタッチされたプロパティがあります。このCanvas.ZIndex添付プロパティはCanvasクラスで定義されていますが、実際にはどのタイプのパネルでも機能します。

ます。またCanvas.ZIndexプロパティを試すことができます。

Canvas.ZIndex Attached Property

0

あなたは何が間違って練習していない、全くお勧めです。

ChildWindowは、この種のダイアログを表示するために使用するクラスです。

Popupを使用することも、別の方法として使用できます。

NOTE:私は、最も簡単な方法は、MessageBox.Show()を使用することです知っているが、それはシルバーフレームの外にポップアップを作成し及びテーマ/スタイリングやその他のカスタマイズを許可していません。

関連する問題