windows-8 – 在创建新的WinRT视图时指定视图提供程序类型

前端之家收集整理的这篇文章主要介绍了windows-8 – 在创建新的WinRT视图时指定视图提供程序类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
试图了解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”.那指的是什么?我试过的任何东西给出了以下内容

Additional information: Class not registered (Exception from HRESULT: 0x80040154 > >(REGDB_E_CLASSNOTREG))

解决方法

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

The class ID of the view provider for the new view. If this parameter is null,use the current view provider.

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

因此,如果要创建具有cutom类的新视图,则必须创建此类并放入第一个参数.

像这样:

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

然后:

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

让我知道这个操作是否成功,因为我不确定我的代码.

猜你在找的Windows相关文章