基于计时器导航到wpf页面

时间:2013-07-31 22:31:17

标签: wpf visual-studio-2012 timer navigation

我正在尝试在WPF应用程序中导航到与MainWindow不同的页面。 MainWindow只有一些欢迎文本,我希望它在4秒后移动到另一个页面。计时器工作正常,但我收到一个错误,

“错误1'UbiTutorial.MainWindow'不包含'Frame'的定义,并且没有扩展方法'Frame'可以找到接受类型'UbiTutorial.MainWindow'的第一个参数(你是否缺少using指令或者汇编参考?)c:\ users \ thomas \ documents \ visual studio 2012 \ Projects \ UbiTutorial \ UbiTutorial \ MainWindow.xaml.cs 54 22 UbiTutorial“

在我的方法中

if (introTime > 4)
{
    this.Frame.Navigate(typeof(Touch));
}

Visual Studio正在抱怨它的Frame部分。

1 个答案:

答案 0 :(得分:0)

Frame是一个控件类型而不是控件实例,没有看到你的Xaml我不知道你添加的Frame的名称是什么,它可能默认为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>