Windows 8 创建新的WinRT视图时指定视图提供程序类型

Windows 8 创建新的WinRT视图时指定视图提供程序类型,windows-8,windows-runtime,Windows 8,Windows Runtime,试图了解WinRT应用程序中多个视图的潜在用途。我可以创建一个新视图,它运行在自己的dispatcher线程上,可以通过CoreApplication.CreateNewView进行切换。我不知道如何在第一个参数中指定如何传递视图提供程序。如果我有一个C#中的裸应用程序(尽管如果我使用Application.Start,同样适用): 如果我想用当前视图提供程序(我假设是创建当前活动视图的提供程序)创建一个新视图,我可以这样做 CoreApplication.CreateNewView("", "

试图了解WinRT应用程序中多个视图的潜在用途。我可以创建一个新视图,它运行在自己的dispatcher线程上,可以通过
CoreApplication.CreateNewView
进行切换。我不知道如何在第一个参数中指定如何传递视图提供程序。如果我有一个C#中的裸应用程序(尽管如果我使用
Application.Start
,同样适用):

如果我想用当前视图提供程序(我假设是创建当前活动视图的提供程序)创建一个新视图,我可以这样做

CoreApplication.CreateNewView("", "foo");
API文档说第一个参数是“新视图的视图提供程序的类ID”。这是指什么?我试过的任何东西都给出了以下结果:

附加信息:未注册类(HRESULT:0x80040154>>(REGDB_E_CLASSNOTREG)的例外)


第一个参数是新视图类的名称

新视图的视图提供程序的类ID。如果此参数为null,请使用当前视图提供程序

如果将第一个参数保留为null,则新视图将具有当前视图类重新表示

所以,如果你想用cutsom类创建一个新的视图,你必须创建这个类并放入第一个参数中

像这样:

public class MySecondView : IFrameworkView
{
// ...
}
然后:

CoreApplication.CreateNewView("MySecondView", "foo");

请告诉我此操作是否成功,因为我不确定我的代码。

请查看下面的链接以获得完美的示例

参考:

示例代码示例

实际上,如果我将其保留为null,它将抛出ArgumentNullException(空字符串的行为与null的文档相同)。如果我将类名传递给它,它将给出问题中指定的未注册类异常。要么类名不是必需的ID(或者有特定的语法),要么它需要以某种方式注册。你知道吗?没有,尽管我不能说我在这上面花了更多的时间。
CoreApplication.CreateNewView("MySecondView", "foo");