2012-11-29 29 views
0

当我打电话Page.Frame.Navigate是我可以导航到一个页面小于屏幕尺寸,使其笼罩我刚刚从任何简单的方式导航的页面?理想的解决方案不会涉及大型框架,也不需要重写大部分应用程序。我正在寻找这种效果:Windows 8 Music AppPage.Frame.Navigate覆盖旧的一页

我想我可以做一个黑客通过传递一个页面的快照从新页面导航,并使用此作为背景,但我宁愿更清洁的解决方案。我想我也可以从新页面访问导航堆栈并将旧的渲染渲染到后面。

+1

你应该使用一个'弹出'或'UIElement',你已经隐藏在页面上 –

回答

1

您可以使用Popup元素,正如William Melani所述。这里有一个例子:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="1*"></RowDefinition> 
     <RowDefinition Height="2*"></RowDefinition> 
    </Grid.RowDefinitions> 
    <Button x:Name="btnPopup" Content="Open Popup" Click="btnPopup_Click_1" Grid.Row="0"></Button> 
    <Popup IsLightDismissEnabled="True" x:Name="popup1" Grid.Row="1" HorizontalAlignment="Center"> 
     <StackPanel Background="Black"> 
      <Border Background="Blue" BorderThickness="2"> 
       <StackPanel> 
        <StackPanel Orientation="Vertical" Margin="10"> 
         <TextBlock Text="User:" VerticalAlignment="Center" Margin="0,0,10,0" FontSize="20" /> 
         <TextBox Height="40" Width="250" FontSize="20" /> 
         <TextBlock Text="Mail:" VerticalAlignment="Center" Margin="0,0,10,0" FontSize="20" /> 
         <TextBox Height="40" Width="250" FontSize="20" /> 
        </StackPanel> 
        <Button HorizontalAlignment="Right" Margin="10">Accept</Button> 
       </StackPanel> 
      </Border> 
     </StackPanel> 
    </Popup> 

而且按钮事件:

private void btnPopup_Click_1(object sender, RoutedEventArgs e) 
{ 
    popup1.IsOpen = true; 
} 

设计是不是真的我的事。

+0

我宁愿将不同的视图分隔成不同的页面,但我想我在某种程度上可以通过使用资源字典来实现这一点。谢谢! – eih