我想找到一种优雅的方法来为WPF(C#)中的应用程序创建一个“集线器”。
我的意思是说,我有三个应用程序AppA,AppB和AppC,它们可能具有截然不同的UI(和逻辑),我想实现的是拥有一个包含图标的“登录页面”对于这三个应用程序。 现在,当用户单击其中一个图标时,“总体应用程序”会将用户重定向到该特定单击的应用程序的UI。
我可以想到两种方法来实现这一目标:
1)拥有一个包含3张图像的MainWindow,然后在ImageA_Click上->出现另一个窗口,其中包含AppA的用户界面。
2)拥有一个带有Tab控件的MainWindow,该控件具有3个选项卡(每个选项卡对应于3个应用程序中的每一个)->单击一个选项卡可将用户定向到所单击应用程序的特定UI。
我想要的是一种可扩展的体系结构,也就是说,明天要说,我必须再开发10个应用程序,我希望能够(无痛地)将额外的10个应用程序集成到整个解决方案中。< / p>
实现此目标的最佳方法是什么?
(请注意,我正在为每个应用程序使用MVC模式-不确定是否有任何区别)
感谢您的帮助!
答案 0 :(得分:1)
您可以在单独的页面中设计每个应用程序ui,然后使用框架和导航服务访问它们。像这样:
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());
}
}
}