【问题标题】:Migrate Xamarin Forms Effect to .NET MAUI将 Xamarin Forms 效果迁移到 .NET MAUI
【发布时间】:2022-08-21 06:18:46
【问题描述】:

对于 Xamarin Forms 应用程序,我一直在使用 Microsoft\'s Xamarin Forms Sample Project 中的示例代码来跟踪触摸,特别是 Touch Tracking Effect sample

我采用了该示例并将其简化为直接从 App.xaml.cs 启动 BoxViewDraggingPage.xaml 并删除所有其他 XAML 文件。编译并运行良好。

然后,我使用与 Xamarin Forms 版本中相同的 BoxViewDraggingPage(以及相同的 TouchActionEventArgs.cs、TouchActionEventHandler.cs、TouchActionType.cs 和 TouchEffect.cs)创建了一个 .NET Maui 应用程序。

我添加了与特定平台示例中相同的 TouchEffect.cs 文件(iOS 也有一个 TouchRecognizer.cs 文件)

那时运行它时,我得到以下信息:

因此,我尝试按照Migrating Xamarin.Forms Effects 的说明进行操作。关于如何设置 Xamarin.Forms 效果的解释完美匹配,但我从该页面不清楚标题为“.NET MAUI 中的效果”的部分正在替换哪个类,因为它的类名与之前的代码不同sn-ps 在文章前面。似乎它正在替换共享平台代码中的 FocusEvent 类,然后在#if 平台部分(#if WINDOWS、#if __ ANDROID __ 等)中指定特定于平台的代码,所以我猜这意味着 TouchEffect。平台特定文件夹中不再需要 cs 文件。

我没有机会知道是否是这种情况或它是否有效,因为当我尝试编译时,我得到:

当我尝试搜索时,我没有找到任何丢失的 Nuget 包或程序集。如果我单击平台后的点,我会得到以下选项,以及使用导航栏切换上下文的说明:

但我已经瞄准了net6.0-windows10.0.19041.0:

所以我不确定为什么它说不可用。

所以,我一直试图让它发挥作用。

我正在寻找一种解决方案来让示例代码像在 Xamarin.Forms 项目中一样工作,但对于 .NET MAUI(无论是设置示例最初的方式还是在 Migrating Xamarin.Forms Effects 中描述的方式)链接) - 可能是我在如何让 Microsoft.Maui.Controls.Compatibility.Platform.UWP 片段编译方面遗漏了一些简单的东西。

或者,另一种可能性是同一个链接说 .NET MAUI 处理程序也可以处理这种类型的场景。因此,如果有人可以展示所有需要修改的部分以执行相同的解决方案但使用 .NET MAUI 处理程序,我对此持开放态度。但似乎最简单的方法应该是让效果在 .NET MAUI 中工作,因为一切都已经以这种方式编写了。在寻找解决方案时,我只是将这两个选项都打开。

编辑:

好的,我知道为什么 UWP 部分下面有红色曲线。我弄清楚了上面截图中的“使用导航栏切换上下文”是什么意思。这意味着我需要在下图所示的下拉列表中选择上下文:

但是,这只是将曲线移动到 PlatformEffect 并且我无法弄清楚如何处理上下文或其他任何东西来解决这个问题:

    标签: c# xamarin.forms .net-maui maui-compat


    【解决方案1】:

    好的,我发现 PlatformEffect 现在继承自 Microsoft.Maui.Controls.PlatformEffect,而不是 Migrating Xamarin.Forms Effects 示例中显示的单独的 Platform 继承。这个例子已经过时了,我没有意识到这一点,所以这让我很困惑。

    【讨论】:

      猜你喜欢
      • 2023-02-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多