尝试了解WinRT应用中多个视图的潜在用途。我可以创建一个新视图,该视图在其自己的调度程序线程上运行,并且可以使用CoreApplication.CreateNewView
进行切换。我无法弄清楚如何在第一个参数中指定如何传递视图提供程序。如果我在C#中有一个裸应用程序(尽管如果我使用Application.Start
也一样):
public class Program
{
static void Main()
{
CoreApplication.Run(new MyViewSource());
}
}
public class MyViewSource : IFrameworkViewSource
{
public IFrameworkView CreateView()
{
return new MyView();
}
}
public class MyView : IFrameworkView
{
// ...
}
如果我想用当前视图提供程序创建一个新视图(我想是创建当前活动视图的视图),我可以做
CoreApplication.CreateNewView("", "foo");
API文档说第一个参数是“新视图的视图提供程序的类ID”。那指的是什么?我试过的任何东西给出了以下内容:
附加信息:未注册的类(HRESULT异常:0x80040154>>(REGDB_E_CLASSNOTREG))
答案 0 :(得分:1)
第一个参数是新视图类的名称。
新视图的视图提供程序的类ID。如果此参数为null,请使用当前视图提供程序。
如果您将第一个参数设为null,那么您的新视图将具有当前视图类重复表示。
因此,如果您想创建一个带有cutom类的新视图,您必须创建此类并放入第一个参数。
像这样:
public class MySecondView : IFrameworkView
{
// ...
}
然后:
CoreApplication.CreateNewView("MySecondView", "foo");
由于我不确定我的代码,请告诉我此操作是否成功。
答案 1 :(得分:0)
请查看以下链接以获取完美示例。
Refernce: MSDN Microsoft Multi Windows For An App