4

WinRT アプリで複数のビューを使用する可能性を理解しようとしています。独自のディスパッチャ スレッドで実行され、.in/out を切り替えることができる新しいビューを作成できます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の場合は、現在のビュー・プロバイダーを使用してください。

最初のパラメータを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 に答える