2012-02-07 13 views
0

MainWindowの中央にモーダルダイアログをホストする代わりに、MainWindow内のContentControlの1つでホストする必要があります。誰かが私にこのことについてどうやって行くべきかアドバイスできることを願っています。ありがとう。ContentControlでモーダルダイアログをホストする

+2

「モーダルダイアログ」とはどういう意味ですか?例を挙げる。 – Seekeer

答えて

0

私はこの動作を実現するためにカスタムUserControlを作成しました。コード付きの記事がhere発見され、それがこのように使用することができます:

<local:PopupPanel 
    Content="{Binding PopupContent}" 
    local:PopupPanel.PopupParent="{Binding ElementName=PopupParentPanel}" 
    local:PopupPanel.IsPopupVisible="{Binding IsPopupVisible}" /> 
+0

ありがとう、レイチェル::) – bbdaffy

1

私はあなたが主要コンテンツに対してモーダルコンテンツを表示することができますカスタムFrameworkElementgithubに例があります。

<c:ModalContentPresenter IsModal="{Binding DialogIsVisible}"> 
    <TabControl Margin="5"> 
      <Button Margin="55" 
        Padding="10" 
        Command="{Binding ShowModalContentCommand}"> 
       This is the primary Content 
      </Button> 
     </TabItem> 
    </TabControl> 

    <c:ModalContentPresenter.ModalContent> 
     <Button Margin="75" 
       Padding="50" 
       Command="{Binding HideModalContentCommand}"> 
      This is the modal content 
     </Button> 
    </c:ModalContentPresenter.ModalContent> 

</c:ModalContentPresenter> 

特長:

    任意のコンテンツを表示し
  • 制御は次のように使用することができます。

  • モーダルコンテンツが表示されている間は、プライマリコンテンツを無効にしません。
  • モーダルコンテンツが表示されている間、プライマリコンテンツへのマウスとキーボードのアクセスを無効にします。
  • アプリケーション全体ではなく、対象となるコンテンツのモーダルのみです。
  • は、IsModalプロパティにバインドすることでMVVMに適した方法で使用できます。