我考虑将我们在Oracle Forms中的一个应用程序重写为C#/ WPF(大约15个表单和一些库)。我读了很多关于WPF的优点/缺点,我认为这是正确的方法。但我有一个问题。 WinForms中没有MDI模式。 现在我用C#/ WinForms创建新的应用程序。每个应用程序通常都有主菜单,主菜单,登录界面,主窗体上的按钮,打开其他表格等。如何在WPF中实现这一点?我一次不需要多个表格。通常我创建MDI应用程序并打开此窗口中的每个表单(最大化,屏幕上一次只有一个表单) - 它有共同的状态栏和标题栏。 在WPF中,每个窗口都是独立的。我是否必须隐藏主窗口,打开新窗口(新窗体),在窗口之间复制应用程序标题?这有点奇怪。 我知道我可以在标签中使用页面或打开内容,但我不确定这是一个好方法。我也知道PRISM,但它看起来像一个大框架 - 我不确定我是否需要这个中等大小的应用程序。
WPF是否仅适用于小型应用程序,或者是否有良好的模式来构建更大的商业软件?
答案 0 :(得分:1)
您可以使用ContentControl
在一个窗口中托管多个控件。我一直这样做,就像一个魅力。在我看来,它比MDI表单和使用几个窗口都具有可用性优势。你不需要拉PRISM就可以做到这一点。
尝试这样的事情
<ContentControl Content="{Binding SelectedViewModel">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type viewModels:LoginViewModel}">
<userControls:LoginView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewModels:MainViewModel}">
<userControls:MainView />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
答案 1 :(得分:0)
我工作的主要项目是WPF业务应用程序。我们使用功能区菜单并在选项卡中托管我们的视图。
有一些框架可以为您提供伪MDI外观。 This is one example