我想找到一种在WPF(C#)中为应用程序创建“中心”的优雅方法。
我的意思是,比方说,我有三个应用程序AppA,AppB和AppC,它们可能各自具有非常不同的UI(和逻辑),我想要实现的是,有一个“登陆页面”,其中包含每个这三个应用程序。现在,当用户点击其中一个图标时,“整体应用程序”会将用户重定向到该特定点击应用程序的UI。
我可以想到两种方法来实现这个目标:
1)让MainWindow有3个图像,并在ImageA_Click上 - >出现另一个窗口,其中包含AppA的UI。
2)使用带有3个选项卡的Tabcontrol的MainWindow(每个选项卡对应3个应用程序中的每一个) - >单击一个选项卡将用户定向到单击应用程序的特定UI。
我想要的是拥有一个可扩展的架构,意思是,明天,我必须开发另外10个应用程序,我希望能够快速(并且轻松地)在整个解决方案中集成额外的10个应用程序。
实现这一目标的最佳方法是什么?
(请注意,我正在为每个应用程序使用MVC模式 - 不确定这是否有所不同)
我感谢任何帮助!
您可以在单独的页面中设计每个应用程序,然后使用框架和导航服务访问它们。像这样:
MainWindow.xaml:
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
Loaded="MainWindow_OnLoaded">
<Grid>
<Frame Name="MainFrame"/>
</Grid>
</Window>
MainWindow.xaml.cs:
using System.Windows;
namespace Test
{
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
}
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
MainFrame.NavigationService.Navigate(new HomePage());
// OR
MainFrame.NavigationService.Navigate(new App1Page());
// OR
MainFrame.NavigationService.Navigate(new App2Page());
// OR
MainFrame.NavigationService.Navigate(new App3Page());
}
}
}