不能将源代码用于已弃用的控件 SlidableListItem



Microsoft 已弃用 SlidableListItem 以支持 SwipeControl。我尝试使用 XAML 控件库轻扫控件 - 它不允许我用鼠标左右轻扫(我可以使用 SlidableListItem(。我想我需要一个触摸屏设备才能工作。

所以我想继续使用 SlidableListItem 尽管已经更新到最新的 nuget 包。

我已经将SlidableListItem的代码从WindowsCommunityToolKit分支4.0.0复制到我的项目中。当我尝试使用该控件时,我遇到此崩溃:

系统类型加载异常:加载 type.\r at Windows.UI.Xaml.FrameworkElement.MeasureOverride(Size 可用大小(

(我昨天成功地将汉堡控件的代码复制到我的项目中。

我尝试复制 SlidableListItem 的源代码,在注意以下几点后,我成功复制了它:

  1. 如果不需要SwipeControl,请删除相关代码:
    • 不要复制SlidableListItemSwipeControlTemplate.xaml的代码
    • 删除SlidableListItem中与UseSwipeControlWhenPossible相关的属性和回调方法.cs(如OnUseSwipeControlWhenPossibleChangedOnSwipeControlValueChangedUpdateSwipeControlItems等(
    • SledableListItem.cs文件中,有两个地方引用了资源文件路径,请根据自己的项目结构进行修改(不需要SwipeControl也可以删除相关代码(
  2. 如果要将代码迁移到自己的控件库,请记住在App.xaml中引入SlidableListItem.xaml资源文件
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///Controls/SlidableListItem.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>

但实际上,SwipeControl是UWP适应不同平台操作习惯的常见控件。在桌面上,我们按住鼠标左键,拖拽通常用于执行transfer操作,而不是调出辅助菜单(我们通常在桌面上右键(。

在键盘和鼠标模式下模拟触摸屏操作体验有时并不是一件令人愉快的事情。如果您打算适应多个平台的操作习惯,请参考本文档添加复合命令。

最新更新