Page.Frame.Navigate覆盖旧页面

时间:2012-11-29 21:14:52

标签: windows-8

当我调用Page.Frame.Navigate时,我是否可以导航到小于屏幕尺寸的页面并将其放在我刚刚以任何简单方式导航的页面上?理想的解决方案不涉及大型框架以及重写应用程序的大部分内容的需要。我正在寻找这种效果:Windows 8 Music App

我想我可以通过将导航页面的快照传递到新页面并将其用作背景来制作黑客,但我更喜欢更清洁的解决方案。我想我也可以从新页面访问导航堆栈并渲染旧版。

1 个答案:

答案 0 :(得分: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;
 }

设计不是我的事。