我有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>
我想要做的是替换&#34;文字1&#34;在第1页中,使用&#34;文本2&#34;来自第2页。
我在Page2.xaml.cs中试过这个:
private void TextBlock_SelectionChanged(object sender, RoutedEventArgs e)
{
var test = TextBlockOne.Text;
Frame.Navigate(typeof(Page1), test);
}
如何解决这个问题?
答案 0 :(得分:0)
您可以使用MainPage进行导航。
首先,MainPage有一个可以导航到Apage的Frame。
然后,MainPage启动一个可以等待5秒钟的Timer来调用MainPage导航到Bpage。
xaml中的代码,我在MainPage中写道
<Frame x:Name="frame"/>
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));
});
}
答案 1 :(得分: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";
}