Frame
是一個控制類型不是控制實例,沒有看到你的Xaml我不知道你添加的框架的名稱是什麼,它可能默認爲frame1
這就是你將需要用來訪問導航方法。希望這會給你一個想法。
MainWindow.xaml
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Frame Height="100" HorizontalAlignment="Left" Margin="10,10,0,0" Name="frame1" VerticalAlignment="Top" Width="200" />
</Grid>
</Window>
MainWindow.xaml.cs
using System.Windows.Threading;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
DispatcherTimer introTime = new DispatcherTimer();
public MainWindow()
{
InitializeComponent();
introTime.Interval = TimeSpan.FromSeconds(4);
introTime.Tick += new EventHandler(introTime_Tick);
introTime.Start();
}
void introTime_Tick(object sender, EventArgs e)
{
//this.frame1.Navigate(new Uri(@"http://www.google.com"));
this.frame1.Navigate(new UserControl1());
}
}
}
UserControl1.xaml
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" Background="Red" >
<Grid>
</Grid>
</UserControl>
謝謝你,我有戈特那工作。我的下一步是根據框架中當前頁面上的事件導航到其他頁面。一旦用戶完成了某件事,請加載下一頁。具體來說,如果用戶在頁面上觸摸了5秒鐘,請加載下一頁。有沒有一種方法可以將框架作爲參數傳遞給每個頁面,以便我可以將代碼放入當前頁面以加載下一頁,或者是通過將信息從當前頁面返回給MainWindow告訴它將新頁面加載到框架上?謝謝! @ mark-hall –
@ThomasCrosley您是使用MVVM還是僅僅使用代碼?就我個人而言,我會讓MainWindow處理它,使頁面引發事件並使用它來確定何時交換頁面。 –
我只是使用後面的代碼。你會推薦使用MVVM嗎?我也喜歡MainWindow方法,特別是如果我有一天想擺脫一頁或交換他們的訂單。 –