如何在WPF中构建经典业务应用程序(如在WinForms中)

时间:2013-06-23 21:02:53

标签: c# wpf

我考虑将我们在Oracle Forms中的一个应用程序重写为C#/ WPF(大约15个表单和一些库)。我读了很多关于WPF的优点/缺点,我认为这是正确的方法。但我有一个问题。 WinForms中没有MDI模式。 现在我用C#/ WinForms创建新的应用程序。每个应用程序通常都有主菜单,主菜单,登录界面,主窗体上的按钮,打开其他表格等。如何在WPF中实现这一点?我一次不需要多个表格。通常我创建MDI应用程序并打开此窗口中的每个表单(最大化,屏幕上一次只有一个表单) - 它有共同的状态栏和标题栏。 在WPF中,每个窗口都是独立的。我是否必须隐藏主窗口,打开新窗口(新窗体),在窗口之间复制应用程序标题?这有点奇怪。 我知道我可以在标签中使用页面或打开内容,但我不确定这是一个好方法。我也知道PRISM,但它看起来像一个大框架 - 我不确定我是否需要这个中等大小的应用程序。

WPF是否仅适用于小型应用程序,或者是否有良好的模式来构建更大的商业软件?

2 个答案:

答案 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