4

试图了解 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))

4

2 回答 2

1

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

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

如果您将第一个参数留空,那么您的新视图将具有当前视图类表示。

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

像这样:

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

接着:

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

让我知道此操作是否成功,因为我不确定我的代码。

于 2013-01-06T16:10:38.117 回答
0

检查下面的链接以获得完美的示例。

参考: MSDN Microsoft Multi Windows For An App

在 Windows 应用商店应用程序中使用多个视图的示例代码示例

于 2014-10-06T08:44:12.317 回答