我试图使用Windows RT XAML Toolkit,以便可以访问TreeView
控件。我创建了一个新的BlankApp,其中包含一个包含与以下内容类似的XAML的MainPage:
<Page
x:Class="BlankApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:BlankApp"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
</Grid>
</Page>
我想将此
Page
更改为WinRTXamlToolkit.Controls.AlternativePage
。我已将XAML修改为:<xc:AlternativePage
x:Class="BlankApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xc="using:WinRTXamlToolkit.Controls"
xmlns:local="using:BlankApp"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
</Grid>
</xc:AlternativePage>
并修改了MainPage类以扩展
WinRTXamlToolkit.Controls.AlternativePage
而不是Page
。现在,当我启动我的应用程序时,它在以下语句中失败:
if (rootFrame.Content == null)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
if (!rootFrame.Navigate(typeof(MainPage), args.Arguments))
{
throw new Exception("Failed to create initial page");
}
}
我收到“无法创建初始页面”,但没有更多详细信息。
所以我的问题是:
1.如何查找有关
Navigate
调用失败原因的更多详细信息?我尝试添加rootFrame.NavigationFailed += rootFrame_NavigationFailed;
,但导航失败事件似乎未引发。2.如何正确使用
WinRTXamlToolkit.Controls.AlternativePage
页面? 最佳答案
您是否做了使用备用页面所需的其余更改?
看一下SDK中的示例代码。具体在这里:
http://winrtxamltoolkit.codeplex.com/SourceControl/changeset/view/379f4af0e5862131aea1992f6875180abeddbcb6#WinRTXamlToolkit.Sample/AppShell.xaml.cs
public sealed partial class AppShell : UserControl
{
public static AlternativeFrame Frame { get; private set; }
public AppShell()
{
this.InitializeComponent();
Frame = this.RootFrame;
this.RootFrame.Navigate(typeof (MainPage));
}
}