0

カスタムの RibbonWindow をデフォルトのシェル ウィンドウとして設定する手順を教えてください。このウィンドウはモジュールから取得しています。登録して初期化したもの。

    protected override DependencyObject CreateShell()
    {
        return new xamRibbonWindow() as DependencyObject;
    }


    protected override void InitializeShell()
    {
        base.InitializeShell();
        App.Current.MainWindow = (xamRibbonWindow)Shell;
        App.Current.MainWindow.Show();
    }
4

1 に答える 1

0

モジュールからシェルを取得するのは少し変わっていますが、通常とまったく同じ方法で行うことができます。依存性注入コンテナーを使用していますか? 私はあなたがいると仮定します:

protected override System.Windows.DependencyObject CreateShell()
{
    return ServiceLocator.Current.GetInstance<Shell>();
}

XamRibbonWindow クラスを Shell に置き換えることができます。このように、シェルを含むプロジェクトを直接参照する必要はありません。ロードされるモジュールに応じて複数のシェルを解決する機能が必要な場合は、XamRibbonWindow が実装するインターフェイス IShell を作成し、そのタイプをコンテナーに登録します。

編集:あなたのコメントに関しては、モジュールをロードし、初期化時に IRegionManager を解決し、リージョンで .Add を呼び出します。または、Navigation インターフェイスを使用している場合は、シェルに NavigateTo を呼び出してもらいます

View Discovery または View Injection を使用していますか? (UI 構成に関する Prism の本を確認する必要があるかもしれません) また、MEF、Unity を使用していますか?

于 2012-11-19T15:21:18.067 に答える