gpt4 book ai didi

c# - CoreApplicationView 与 CoreWindow 与 ApplicationView

转载 作者:太空狗 更新时间:2023-10-30 01:02:31 25 4
gpt4 key购买 nike

CoreApplicationView有什么区别, CoreWindow , 和 ApplicationView ?

我可以看到每个应用程序都有不同的属性等,所以我不是在问“我应该使用哪个来获取 abc 属性或方法?”。

我在问它们之间的逻辑区别是什么。为什么有不同的类(class)?因为它们似乎或多或少是一样的 - 一个代表应用程序窗口的类。

最佳答案

您提到的类(class)之间存在一些差异。我们可以从两个维度来区分它们:

  • 结构(参见 从上到下 部分)
  • 函数(参见 外部或内部 部分)

  • 我专门针对这个问题写了一篇文章,见 http://walterlv.github.io/post/core-application-window-of-uwp-en.html .

    有时我们必须查看带有命名空间的完整类名来确定它们的含义。
  • 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.CoreDispatcher
  • Windows.UI.Xaml.DispatcherTimer

  • 我们可以将它们拆分为 Windows.ApplicationModelWindows.UI ,或将它们拆分为 CoreXaml .
    CoreApplicationCoreApplicationView管理应用程序模型,以及 Application , CoreWindowWindow管理应用程序内部 UI。 CoreApplication , CoreApplicationViewCoreWindow管理核心功能,但 ApplicationWindow管理 XAML UI。

    从上到下

    从上到下是 ApplicationWindow ,然后到 XAML。很明显,应用程序包含窗口,而窗口包含内部 XAML UI。那么,真正的关系是什么?
    CoreApplication管理 UWP 应用程序的所有 View 和 CoreApplicationView是它直接管理的观点。一个 CoreApplicationView包含 CoreWindow作为窗口和 CoreDispatcher作为线程模型。

    UWP application view
    ▲ UWP 应用 View

    您可以阅读 Show multiple views for an app - UWP app developer - Microsoft Docs学习如何编写多 View 应用程序。你会更了解 CoreApplication之间的关系和 CoreApplicationView .
    CoreWindow是我们都熟悉的窗口。 Windows.UI.XAML.Window封装 CoreWindow以便于使用。 CoreDispatcher是基于windows消息循环的线程模型。这是 CoreDispatcher保持窗口一直显示而不被处理。

    外用或内用

    大多数UWP开发者都是普通的开发者,所以我们应该站在他们一边,考虑外在和内在。普通 UWP 开发人员从 MainPage 开始编写代码,所以外部在页面之外,内部是页面的 XAML 内容。

    外部包含 CoreApplication , CoreApplicationViewCoreWindow而内部包含 ApplicationWindow .奇怪的是 ApplicationWindow是内部的吗?原因是他们管理应用程序和窗口的 XAML 部分。
    WindowCoreWindow的封装提供额外的 XAML UI 功能。与 ApplicationView 相同,是对 CoreApplication的封装提供额外的 XAML UI 功能。

    详细来说, CoreWindow是与 Windows 操作系统和 UWP 应用程序模型互操作的类。它提供了窗口大小、位置、输入状态等功能。 Window是提供对窗口使用XAML UI 的能力的类,例如设置窗口的XAML 内容、设置窗口的标题栏或获取 Compositor的 window 。 CoreApplicationView是与Windows操作系统互操作的类,提供windows消息循环机制和改变客户区和非客户区的能力。 ApplicationViewWindow 相同,提供为应用程序使用 XAML UI 的能力。

    总之, CoreWindowCoreApplicationView提供操作系统和应用程序模型的底层核心功能。 WindowApplicationView封装它们以供 XAML 使用。

    关于c# - CoreApplicationView 与 CoreWindow 与 ApplicationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33680631/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com