我没有在MainWindow的中心托管我的模态对话框,而是希望在MainWindow中的一个ContentControl中托管它。希望有人可以告诉我如何解决这个问题。感谢。
答案 0 :(得分:1)
我在自定义FrameworkElement
的{{3}}上有一个示例,可让您在主要内容上显示模态内容。
控件可以像这样使用:
<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友好的方式使用。 答案 1 :(得分:0)
我已经构建了一个自定义UserControl
来完成此行为。找到代码的文章为here,可以这样使用:
<local:PopupPanel
Content="{Binding PopupContent}"
local:PopupPanel.PopupParent="{Binding ElementName=PopupParentPanel}"
local:PopupPanel.IsPopupVisible="{Binding IsPopupVisible}" />