2017-03-28 3 views
0

나는 Page1.xaml이

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <StackPanel HorizontalAlignment="Left" Height="720" VerticalAlignment="Top" Width="575"> 

     <TextBlock Foreground="White" TextWrapping="Wrap" Margin="28,20,31,0" FontSize="14" Height="145"> 
      <TextBlock.Transitions> 
       <TransitionCollection> 
        <EntranceThemeTransition FromHorizontalOffset="400"/> 
       </TransitionCollection> 
      </TextBlock.Transitions> 
      <Run Text="Text 1"/> 
     </TextBlock> 
    </StackPanel> 
</Grid> 

그리고 Page2.xaml

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <TextBlock Foreground="White SelectionChanged="TextBlock_SelectionChanged" 
Name="TextBlockOne"> 
     <TextBlock.Transitions> 
      <TransitionCollection> 
       <EntranceThemeTransition FromHorizontalOffset="400"/> 
      </TransitionCollection> 
     </TextBlock.Transitions> 
     <Run Text="Text 2"/> 
    </TextBlock> 
</Grid> 

내가 뭘 원하는 것은에있다가 5 초 후 1 페이지의 "텍스트 1"을 2 페이지의 "텍스트 2"로 바꿉니다.

Page2.xaml.cs에서 이것을 시도했습니다 :

private void TextBlock_SelectionChanged(object sender, RoutedEventArgs e) 
    { 
     var test = TextBlockOne.Text; 
     Frame.Navigate(typeof(Page1), test); 
    } 

어떻게이 문제를 해결할 수 있습니까?

+0

의 코드 무슨 문제가 지금은? – Archana

+1

타이머를 5 초 동안 유지 한 다음 텍스트 값이 – Archana

+0

인 페이지 1로 이동하십시오. 현재 문제가 발생하지 않습니다. 2 페이지에서 텍스트 값을 가져올 수 없습니다. – LittleBird

답변

0
public MainPage() 
{ 
    DispatcherTimer t = new DispatcherTimer(); 
    t.Interval = TimeSpan.FromSeconds(5); 
    t.Tick += (s, e) => 
    { 
     frame.Navigate(typeof(Page2)); 
     StopTimer(); 
    }; 
    t.Start(); 
} 

public void StopTimer() 
{ 
    t.Stop(); 
} 

Page2.xaml

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    TextBlock.Text = "My string"; 
} 
0

MainPage를 사용하여 탐색 할 수 있습니다.

먼저, 메인 페이지에는 Apage로 이동할 수있는 프레임이 있습니다.

그런 다음 MainPage에서 Bpage로 이동하기 위해 MainPage를 호출하기 위해 5 초를 기다릴 수있는 타이머를 시작합니다.

XAML의 코드, 내가

<Frame x:Name="frame"/> 

MainPage

에 쓰기 xaml.cs

public MainPage() 
    { 
     this.InitializeComponent(); 
     frame.Navigate(typeof(APage)); 
     DispatcherTimer t = new DispatcherTimer(); 
     t.Interval = new TimeSpan(1000); 
     t.Tick += (s, e) => 
     { 
      NavigatePageB(); 
     }; 
     t.Start(); 
    } 

    private async void NavigatePageB() 
    { 
     await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, 
     () => 
     { 
      frame.Navigate(typeof(PageB)); 
     }); 
    } 
+0

이 솔루션을 사용해 보았을 때, APage로만 이동하고 계속 진행하지 않습니다. PageB – LittleBird

+0

@LittleBird 1 초 후에 PageB로 이동합니다. – lindexi

+0

@LittleBird NavigatePageB에서 Frame을 작성하는 것은 과실입니다. 내가 변경 한 코드를 시도해보십시오. – lindexi