C# CoreApplicationView vs CoreWindow vs ApplicationView
和之间有什么区别 我可以看到每个应用程序都有不同的属性等,所以我不是在问“我应该使用哪一个来获取C# CoreApplicationView vs CoreWindow vs ApplicationView,c#,.net,windows-runtime,windows-store-apps,win-universal-app,C#,.net,Windows Runtime,Windows Store Apps,Win Universal App,和之间有什么区别 我可以看到每个应用程序都有不同的属性等,所以我不是在问“我应该使用哪一个来获取abc属性或方法?” 我在问他们在逻辑上有什么不同。为什么有不同的课程?因为它们似乎或多或少是相同的东西——一个代表应用程序窗口的类。您提到的类之间有一些不同。我们可以通过两个维度来区分它们: 结构(见从上到下的部分) 功能(请参见外部或内部的部分) 我专门为这个问题写了一篇帖子,请看 有时我们必须查看带有名称空间的完整类名,以确定它们的含义 Windows.ApplicationModel.
abc
属性或方法?”
我在问他们在逻辑上有什么不同。为什么有不同的课程?因为它们似乎或多或少是相同的东西——一个代表应用程序窗口的类。您提到的类之间有一些不同。我们可以通过两个维度来区分它们:
- 结构(见从上到下的部分)
- 功能(请参见外部或内部的部分)
有时我们必须查看带有名称空间的完整类名,以确定它们的含义
Windows.ApplicationModel.Core.CoreApplication
Windows.ApplicationModel.Core.CoreApplicationView
Windows.UI.Xaml.Application
Windows.UI.Core.CoreWindow
Windows.UI.Xaml.Window
Windows.ApplicationModel.Core.CoreApplicationViewTitleBar
Windows.UI.ViewManagement.ApplicationViewTitleBar
Windows.UI.Core.corespatcher
Windows.UI.Xaml.dispatchermer
Windows.ApplicationModel
和Windows.UI
,或者将它们拆分为Core
和Xaml
CoreApplication
和CoreApplicationView
管理应用程序模型,application
、coreewindow
和Window
管理应用程序内部UI。CoreApplication
、CoreApplicationView
和CoreWindow
管理核心功能,而应用程序
和窗口
管理XAML UI
自上而下
从上到下是从应用程序
到窗口
,然后到XAML。很明显,应用程序包含窗口,窗口包含内部XAML UI。那么,真正的关系是什么
CoreApplication
管理UWP应用程序的所有视图,CoreApplicationView
是它直接管理的视图。CoreApplicationView
包含一个CoreWindow
作为窗口,一个CoreDispatcher
作为线程模型
▲ UWP应用程序视图 您可以通过阅读了解如何编写多视图应用程序。您将进一步了解
CoreApplication
和CoreApplicationView
之间的关系
CoreWindow
是我们都熟悉的窗口。
Windows.UI.XAML.Window
封装了CoreWindow
,以便于使用CoreDispatcher
是基于windows消息循环的线程模型。正是coredipatcher
使窗口始终显示,而不被处理
外用还是内用
大多数UWP开发人员都是普通的开发人员,所以我们应该站在他们一边考虑外部和内部。普通的UWP开发人员从MainPage
开始编写代码,因此外部是页面的外部,内部是页面的XAML内容
外部包含核心应用程序
、核心应用程序视图
和核心窗口
,而内部包含应用程序
和窗口
。应用程序
和窗口
是内部部分,这是否奇怪?原因是它们管理应用程序和窗口的XAML部分
窗口
是对CoreWindow
的封装,以提供额外的XAML UI功能。与ApplicationView
相同,它是CoreApplication
的封装,提供额外的XAML UI功能
具体来说,corewindown
是与Windows操作系统和UWP应用程序模型进行互操作的类。它提供诸如窗口大小、位置、输入状态等功能。窗口
是一个类,它提供了为窗口使用XAML UI的能力,例如设置窗口的XAML内容、设置窗口的标题栏或获取窗口的合成器
。CoreApplicationView
是一个与Windows操作系统互操作的类,它提供Windows消息循环机制以及更改客户端区域和非客户端区域的能力。应用程序视图
与窗口
相同,提供了为应用程序使用XAML UI的能力
总之,
CoreWindow
和CoreApplicationView
提供了操作系统和应用程序模型的底层核心功能。窗口
和ApplicationView
将它们封装起来以供XAML使用。核心对象通常供应用程序框架使用(XAML、WinJS)。然后,这些框架以与编程语言更加匹配的方式公开Core
对象,例如,corefown.SizeChanged
成为XAML中的Window.SizeChanged
事件和JavaScript中的Window.onresize
事件。CoreWindow.KeyDown
事件在XAML中成为UIElement.KeyDown
事件,在JavaScript中成为HtmleElement.onkeydown
事件,通常使用框架对象,而不是核心对象。@RaymondChen谢谢。@RaymondChen可能值得在