加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 05:41:49 所属栏目:Windows 来源:网络整理
导读:试图了解WinRT应用程序中多个视图的潜在用途.我可以创建一个新视图,它可以在自己的调度程序线程上运行,并可以使用CoreApplication.CreateNewView进行切换.我无法弄清楚如何在第一个参数中指定如何传递视图提供程序.如果我在C#中有一个裸应用程序(尽管如果我
试图了解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");

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读