在当前区域中显示模态对话框Grid.Column / Grid.Row

时间:2013-02-05 09:07:23

标签: wpf modal-dialog

我正在学习本教程中的模态对话框:http://www.codeproject.com/Articles/36516/WPF-Modal-Dialog但是,是否有可能只显示区域Grid.Column / Grid.Rows中的模态对话框,此外,另一个Grid.Column / Grid.Rows仍可访问?

感谢。

2 个答案:

答案 0 :(得分:0)

您当前可能正在使用模态对话框覆盖整个网格:

<Grid>
    <Grid x:Name="ModalDialogParent">
        ...
    </Grid>

    <controls:ModalDialog x:Name="ModalDialog" />
</Grid>

相反,工作¹只需将模态对话框修复到父网格的特定部分,方法是将放在网格中并指定其位置:

<Grid x:Name="ModalDialogParent">
    ...

    <controls:ModalDialog x:Name="ModalDialog"
                          Grid.Row="1" Grid.Column="1"
                          Grid.RowSpan="2" Grid.ColumnSpan="2" />
</Grid>

¹我不熟悉您链接的模态对话框代码,我现在就快速浏览一下。

答案 1 :(得分:0)

Modal Dialog的定义是(强调我的):

  

在用户界面设计中,模态窗口是一个子窗口,要求用户在返回操作父应用程序之前与其进行交互,从而阻止应用程序主窗口上的工作流。模态窗口通常称为重窗口或模态对话框,因为窗口通常用于显示对话框。

因此,如果您需要“模态”对话框,则问题的答案为“否”。如果您只想阻止网格的某个部分,只需将Dialog作为UserControl加载到您希望阻止使用的部分。您仍然可以访问其余的应用程序。