C# 关注WP7中与列表框重叠的画布

C# 关注WP7中与列表框重叠的画布,c#,silverlight,windows-phone-7,canvas,popup,C#,Silverlight,Windows Phone 7,Canvas,Popup,我这里有个情况。我有一个包含列表框的页面。如果列表框能够从web服务获取数据,则列表框将填充项目。现在,当用户的手机没有网络连接或Web服务没有回复Ok状态时,我想向用户显示一个弹出窗口,其中包含重试选项或选择Ok以保持在同一页面上(尽管听起来很愚蠢)。为此,我使用了画布: <Canvas Name="Nonetwork" Height="150" Width="280" HorizontalAlignment="Center" VerticalAlignment="Center" Bac

我这里有个情况。我有一个包含列表框的页面。如果列表框能够从web服务获取数据,则列表框将填充项目。现在,当用户的手机没有网络连接或Web服务没有回复Ok状态时,我想向用户显示一个弹出窗口,其中包含重试选项或选择Ok以保持在同一页面上(尽管听起来很愚蠢)。为此,我使用了画布:

<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>

正如大多数有经验的人所猜到的,画布被隐藏在列表框中,当没有网络连接时无法访问。因此,我有一个带有画布的空白页面,但用户无法单击“确定”或“重试”。请帮忙


请务必让我知道是否有任何其他方法来解决这个问题。我尝试了弹出窗口,但我无法从弹出窗口导航到主页面,因为这是一个用户控制页面。非常感谢您的帮助

好吧,我把画布放在列表框下面,问题就解决了。我不知道控件在XAML中的位置会有这么大的影响…

元素在Silverlight中的渲染顺序首先取决于它们在可视对象层次结构中的位置,其次取决于它们的ZIndex属性

画布有一个名为ZIndex的第三个附加属性,可用于覆盖元素的默认分层。尽管这个Canvas.ZIndex attached属性是由Canvas类定义的,但它实际上适用于任何类型的面板

您也可以尝试Canvas.ZIndex属性:


你的做法是错误的,根本不推荐

ChildWindow
是您应该用来显示此类对话框的类

使用
弹出窗口
也是您可以使用的另一种方法

注意:我知道最简单的方法是使用
MessageBox.Show()
,但它会从silverlight框架中创建一个弹出窗口,不允许主题设置/样式设置和其他自定义设置