窗口、页面和用户控件在WPF导航中的选择?

20 浏览
0 Comments

窗口、页面和用户控件在WPF导航中的选择?

我目前正在编写一款桌面应用程序,但我似乎无法理解在将某人重定向到应用程序的新部分时应使用什么。

我的选择似乎为:

  • 窗口
  • 页面
  • 用户控件

但我不理解它们之间的区别,以及何时应该使用每个选项。

有人能为我解释一下它们之间的区别,并给出什么情况/应用程序中可能使用每个选项的示例?

admin 更改状态以发布 2023年5月19日
0
0 Comments
  • Window就像Windows.Forms.Form,是一个新窗口
  • Page根据在线文档所述:

    封装可以由Windows Internet Explorer、NavigationWindow和Frame导航和托管的内容页面。

    因此,如果要可视化一些HTML内容,您基本上会使用它。

  • UserControl用于创建一些可重复使用的组件(但不是独立的组件),以在多个不同的Windows中使用它。

0
0 Comments

Window对象就像它的名字一样:它是你的应用程序的一个新的Window。当你想要弹出一个全新的窗口时,你应该使用它。我不经常在WPF中使用多个Window,因为我喜欢把基于用户动作改变的动态内容放在我的主窗口中。

Page是你的窗口内的一个网页。它主要用于像XBAP这样的基于Web的系统中,其中你只有一个浏览器窗口,不同的页面可以托管在该窗口中。它还可以用于像导航应用程序中,就像sellmeadog说的那样。

UserControl是一个可重复使用的用户创建的控件,你可以像添加任何其他控件一样将其添加到你的UI中。通常我在想要构建一些自定义功能(例如一个CalendarControl)或者当我有很多相关的XAML代码时,比如在使用MVVM设计模式时,会创建一个UserControl

在窗口之间导航时,你可以简单地创建一个新的Window对象并显示它,

var NewWindow = new MyWindow();
newWindow.Show();

但正如我在答案开头所说的,如果可能的话,我更喜欢不管理多个窗口。

我喜欢的导航方法是创建一个使用ContentControl的一些动态内容区域,并将其填充一个包含当前视图的UserControl中。


    
        
    

在您的导航事件中,您可以简单地使用它进行设置。

ContentArea.Content = new MyUserControl();

但是,如果您正在使用WPF,我强烈推荐使用MVVM设计模式。我在我的博客上有一个非常基本的 示例,说明如何使用MVVM进行导航,使用这个模式:


   
      
          
      
      
          
      
   
   
      
      
         
            
               
                  

Screenshot1
Screenshot2

0