【问题标题】:Is it possible to display WPF UI components in a UWP app?是否可以在 UWP 应用中显示 WPF UI 组件?
【发布时间】:2021-08-07 17:39:40
【问题描述】:

我在 WPF 中有一个巨大的应用程序,我一步一步将 UI 移动到 UWP(使用 XamlIslands)。

在项目的列表视图中,我有一个非常复杂的项目模板(仍在 WPF 中),我想在 UWP 中创建 ListView 本身(因为平滑滚动)并显示来自WPF 项目模板。是否可以以某种方式将 WPF UI 注入到 UWP 列表项中?

更多背景:

  • 默认情况下,WPF ListView 中的滚动非常不稳定(我的意思是它不像在 UWP ListView 中那样平滑)。 ListView 项可以覆盖整个屏幕(它还包含一个 Web 视图),因此从 UX 的角度来看这是不可接受的
  • 是的,有一种方法可以在 WPF 中使其平滑,但后来我失去了虚拟化。但这非常重要,因为我可以在该列表中包含许多项目。

我也很欣赏任何其他想法。

【问题讨论】:

  • 您想提供一些重现该行为的代码。当使用Task.Run 将繁重的功能正确释放到后台时,WPF 非常快(60fps),而所有事情都在 UI 线程中执行。我在这里看到一个 XY 问题meta.stackexchange.com/questions/66377/what-is-the-xy-problem。最终,当您在 WPF 主机控件(并且可能是 UWP 主机控件)中注入一个窗口时,您可以比 xaml 岛更进一步,并在一个窗口中拥有多个进程(实际上是多个)。
  • 此外,您能否开发“有一种方法可以在 WPF 中使其平滑,但随后我失去了虚拟化”?
  • 最后,您可以在 VS2019 中使用 alt+F2 分析您的应用程序,以查看它在何处/何时变慢以及根本原因是什么(哪些功能)。

标签: c# wpf uwp


【解决方案1】:

是否可以以某种方式将 WPF UI 注入 UWP 列表项?

简短回答:不。

您可以使用 XAML 岛将 UWP 组件注入您的 WPF 应用程序,但反过来就不行,即您不能将 WPF 组件注入您的 UWP 应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多