沒有創建過於複雜的答案,也沒有包括對您而言顯然是新的概念,如DelegateCommand(s)或WindowManager(s),這是全屏應用程序的一個簡單示例,它顯示了許多不同的「子窗口」 (這本身不是窗戶,而是用戶控件)
主窗口:
<Window x:Class="FullScreenAppSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowState="Maximized"
WindowStyle="None">
</Window>
代碼背後:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ShowLogin()
{
var loginview = new LoginView();
this.Content = loginview;
}
private void ShowMenu()
{
var menu = new MenuView();
this.Content = menu;
}
}
LoginView:
<UserControl x:Class="FullScreenAppSample.Login.LoginView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- your login screen UI here -->
</UserControl>
MenuView:
<UserControl x:Class="FullScreenAppSample.Menu.MenuView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- your Menu UI here -->
</UserControl>
這是什麼可以被稱爲「觀第一」的方針,在查看通過採取實例其他的責任決定了應用程序的「流」意見並使其可見。
話雖這麼說,我要一分鐘的
每個人處理不同的看法
是解決你的說法。創建WPF應用程序的主流方法是MVVM,它被設想爲Martin Fowler's Presentation Model的WPF特定版本。然而,有許多解釋和許多不同版本的MVVM,以及許多MVVM Frameworks,例如MVVM Light,Caliburn.Micro和微軟的Prism(等等)。
這些框架中的每一個都提供了簡化大規模複雜WPF應用程序開發的基本工具(基類,幫助類,服務,抽象,事件聚合器以及其他)。底線:WPF中沒有明確的「正確方法」來處理View和ViewModel實例/管理,這取決於您的choice of MVVM Framework以及項目的具體情況,例如對可測試性的需求。我個人已經從幾個不同的框架中獲取了各種不同的部分和組件(以及概念),並構建了我自己的,ViewModel的第一MVVM方法。我建議你花一些時間來分析你的項目需求並考慮是否使用這些。
我很高興聽到這個消息。 WPF岩石。 .Net開發人員應該接受它。你不會後悔這個決定=) –