0

我需要创建一个原型来测试 WPF 执行以下操作的能力:

  • 一个基础窗口作为应用程序的基础
  • 在此窗口中,用户可以单击(例如“添加客户”)并弹出一个新窗口
    • 弹窗亮
    • 背景中的主窗口变暗
  • 如果用户点击主窗口
    • 主窗口变亮
    • 弹出窗口变暗并进入后台
  • 一个窗口中的任何更改,我们需要立即在所有窗口中生效,无论是明亮的还是暗淡的

问题:

  1. 子窗口应该是用户控件还是窗口?
  2. 有什么我可以利用的“MDI框架”吗
  3. 是否有什么特别需要考虑以确保所有窗口都不断更新,例如使用 ObservableCollections 等?
  4. 我应该将所有全局变量作为属性存储在主窗口中,以便子窗口可以访问它们吗?
  5. 您将如何在 WPF 中“使窗口变暗”或“使窗口模糊”?

欢迎任何建议。

4

1 回答 1

1
  1. 子窗口应派生自 Window,然后在类的实例上调用 Show() 以显示无模式对话框。
  2. 从来没听说过。
  3. 使用 WPF 数据绑定使所有内容保持最新 - 您的数据类应该实现 INotifyPropertyChanged 并像您所说的那样通过 ObservableCollection 公开集合。主窗口和弹出窗口应该具有相同的 DataContext 对象,这样如果一个屏幕更改对象的属性,另一个屏幕将自动更新。
  4. 使用模型视图 - 视图模型模式来保持数据和 UI 清晰分离。试试这个工具包:http: //blogs.msdn.com/ivo_manolov/archive/2009/05/03/9584900.aspx
  5. 没有真正的“暗淡”功能,但您可以执行以下操作:

代码:

<Window>
  <Grid x:Name="dimElement">
    <Grid Background="Gray" Opacity="0.5" Visibility="Collapsed"/>
    <Grid>
      main content goes here
    </Grid>
   </Grid>
</Window>

当您想要使窗口变暗时,将 dimElement 上的 Visibility 设置为“Visible”并将其设置为“Collapsed”以适当地取消变暗。

希望有帮助!

于 2009-05-07T13:35:05.343 回答