1

いくつかの xaml ページがあり、それらを 1、2、3 などと呼びましょう。

1 から 2 に移動すると、ページのロード時にページ全体が少しジャンプしてから通常に戻ります。2 から 3 に移動すると、同じことが起こります。

ただし、navigationservice.GoBack(); で後方に移動する場合は、この方法では、page3 から page2 または page2 から page1 へのページ遷移はすべてスムーズで、間にジャンプはありません。

私が経験しているジャンプは、前方にナビゲートするときにのみ発生しますが、これは問題になる可能性があるため、かなり面倒であり、これを修正したいと考えています。

前方に移動する方法の例:

NavigationService.Navigate(new Uri("/page2.xaml", UriKind.Relative));

Xaml レイアウト:

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--TitlePanel contains the name of the application and page title-->
    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock x:Name="ApplicationTitle" Text="Blablabla secret" Style="{StaticResource PhoneTextNormalStyle}"/>
        <TextBlock x:Name="PageTitle" Text="More blablabla" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <ScrollViewer Height="500" HorizontalAlignment="Left" Margin="18,0,0,0" Name="scrollViewer1" VerticalAlignment="Top" Width="450" HorizontalScrollBarVisibility="Disabled" Grid.Row="1">
        <StackPanel Height="Auto" Name="stackPanel1" Width="450">
            <TextBlock Height="54" Name="textBlock1" Text="" TextWrapping="Wrap">
                <Underline FontSize="40">page2</Underline>
            </TextBlock>
            <TextBlock Height="400" Name="textBlock2" Text="Blablablabla" TextWrapping="Wrap" FontSize="26" />

        </StackPanel>
    </ScrollViewer>
    <my:AdControl AdUnitId="000000" ApplicationId="ffffff" Grid.Row="1" Height="80" HorizontalAlignment="Left" Margin="0,455,0,0" Name="adControl1" VerticalAlignment="Top" Width="480" />
    <Grid.Background>
        <ImageBrush ImageSource="/Blablaapplication;component/Images/Secret.png" />
    </Grid.Background>
</Grid>
<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
        <shell:ApplicationBarIconButton IconUri="/Images/appbar.Back.rest.png" Text="Back" Click="Backbutton"/>
        <shell:ApplicationBarIconButton IconUri="/Images/appbar.next.rest.png" Text="Next" Click="Nextbutton"/>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

4

1 に答える 1

1

これを物理デバイスまたはエミュレーターでテストしていますか? 使用している SDK/OS のバージョンは何ですか?

NavigationService.Navigate個人的にこの問題を経験したことはありませんが、この問題の解決策として、コア ディスパッチャーを介してナビゲーション プッシュ ( ) を強制していた開発者が何人かいたことを覚えています。

基本的:

Dispatcher.BeginInvoke(() =>
    {
        NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
    });
于 2013-03-12T02:07:45.593 に答える