我正在尝试使用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
页面?
答案 0 :(得分:2)
您是否进行了使用替代页面所需的其他更改?
查看SDK中的示例代码。具体在这里:
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));
}
}