在 Windows 10 UWP 应用程序中创建可滑动的 ListView,例如在地图应用程序中

2024-04-25

我正在创建 UWP 应用程序,我需要在滑动菜单中显示一系列结果。滑动菜单可滚动并且可以滑动改变其高度就像 Windows 10 Mobile 中的地图应用程序中的搜索结果一样。 我找不到任何教程来创建这样的体验。

提前致谢


您也可以使用UserControl去做这个。

XAML:

<ScrollViewer x:Name="scrollViewer" HorizontalAlignment="Stretch" ScrollViewer.VerticalScrollMode="Disabled" VerticalScrollBarVisibility="Hidden">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="20" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Border x:Name="Area1" Grid.Row="0" Height="{x:Bind childheight}" HorizontalAlignment="Stretch" Background="AliceBlue"></Border>
        <Grid x:Name="SlidButton" Background="Gray" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Row="1"
              ManipulationStarted="SlidButton_ManipulationStarted" ManipulationCompleted="SlidButton_ManipulationCompleted" 
              ManipulationMode="All" ManipulationDelta="SlidButton_ManipulationDelta">
            <TextBlock Text="&#xE76F;" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="Black" FontFamily="Segoe MDL2 Assets" FontSize="15" />
        </Grid>
        <Border x:Name="Area2" Grid.Row="2" Height="{x:Bind childheight}" HorizontalAlignment="Stretch" Background="Transparent"></Border>
    </Grid>
</ScrollViewer>

后面的代码:

private double height;
private double childheight;

public SlidableView()
{
    this.InitializeComponent();
    height = Window.Current.Bounds.Height * 2 - 40;
    childheight = Window.Current.Bounds.Height - 40;
}

private void SlidButton_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
    scrollViewer.VerticalScrollMode = ScrollMode.Enabled;
}

private void SlidButton_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
    scrollViewer.VerticalScrollMode = ScrollMode.Disabled;
}

private static double Y;

private void SlidButton_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
    Y = Y + e.Delta.Translation.Y;
    scrollViewer.ChangeView(null, -Y, null);
}

这是一个非常简单的移动版本,当它应用于PC时,请更改“height”和“childheight”,如下所示:

height = Window.Current.Bounds.Height * 2 - 20;
childheight = Window.Current.Bounds.Height - 20;

当我说这是一个非常简单的版本时,因为我没有公开此用户控件的任何属性,所以您可以公开两个的两个子属性Border正如我上次回答中那样进行控制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 10 UWP 应用程序中创建可滑动的 ListView,例如在地图应用程序中 的相关文章

  • 保留选项卡视图页面之间的状态

    issue 我有两个ListViews渲染内部TabBarView用一个TabController 我如何在每个之间保留状态 由于缺乏更好的词 ListView这样 1 小部件不会重建 2 ListView选项卡之间的位置会被记住 相关代码
  • 如何使用PowerShell批量调用Update-Database

    我们使用 Azure 弹性池生成多个客户端数据库和一个引用客户端数据库的主数据库 我们已经拥有多个数据库 并且正在开发新版本的代码 我们使用 EF6 代码优先 当我们更改模型 添加属性 时 我们创建迁移文件并需要调用Update Datab
  • 如何读取UWP中的嵌入资源?

    我正在将我的一个应用程序从 WP 8 0 迁移到 UWP 我想对普通用户隐藏一些 JSON 内容 在以前的版本中 我能够将这些 JSON 文件的构建操作设置为 嵌入式资源 并使用以下方式迭代它们 Application GetResourc
  • Powershell从Linux客户端连接到Windows远程

    我正在尝试从我的 Linux 工作站远程连接到 Windows 计算机 我在 Arch Linux 工作站上安装了 powershell 目前正在尝试连接到主机 在主机上 Enable PSRemoting 然后允许所有主机Set Item
  • Recyclerview 和处理不同类型的行膨胀

    我正在尝试与新的工作RecyclerView 但我找不到一个例子RecyclerView不同类型的行 卡片视图变得膨胀 With ListView我覆盖getViewTypeCount and getItemViewType 用于处理不同类
  • AppBarButton.Icon 在运行时不会改变

    根据某些条件 我在运行时更新 AppBarButton 图标时遇到问题
  • 如何使用 AsyncTask 或任何其他方法在 ListView 中加载更多项目

    我对 Android 开发非常陌生 我知道这个问题之前可能已经得到答案 但我似乎找不到适合我情况的答案 我正在创建一个 Android 应用程序 其中有一个ListView显示项目列表 当用户到达页脚时 我需要显示更多项目 例如另外 10
  • Docker:尝试连接时发生错误

    在 Windows 上安装了 Docker 另外还安装了 2 个 Oracle VM VirualBox 和 Kitematic 我已在 Windows 10 电脑中禁用 Hyper V 现在的问题是我无法从 DockerHub 下载任何
  • 屏幕解锁时崩溃

    我的应用程序运行良好 除了当用户停止使用手机足够长的时间以至于屏幕锁定时 当他们解锁应用程序时 应用程序崩溃了 我有点不知道为什么 这是错误 这是惰性适配器 package com buhz helpers import java util
  • 提供多个 Base64 图像下载

    我的 django 应用程序有一个带有 base64 编码图像的模型 我想向我的 ListView 添加选项 以将所有显示的图像下载到用户选择的位置 我应该创建一个 AJAX 视图 还是 jQuery 可以处理它 我用谷歌搜索了一下 看到了
  • 网络更改时无法从主机连接 Docker 适用于 Windows 的 Docker

    当网络 IP 从办公室更改为家庭时 我无法连接到 docker 容器 但同样适用于 localhost 或 127 0 0 1 我正在连接 VPN 以连接数据库 root 1c970ed5cd64 etc curl http localho
  • getView 中的位置索引始终返回 0

    我想实现一个 ListView 其中每行内都有删除按钮 我唯一的问题是 当我单击某些行的 删除 Btn 时 位置 0 的行刚刚被删除 我认为 getView 中的 Position 参数无法更新并且始终为 0 值 我应该怎么办 Thanks
  • 在Android中添加ListView子项文本

    我创建了一个 RSS 阅读器 可以在列表视图中列出项目 我还想在每个项目下面都有一个日期 但我不知道该怎么做 我需要某人的帮助才能使子项文本显示从 RSS 提要检索到的 pubDate 这是我的班级代码 public class RSSRe
  • WPF;单击 ListView 中的空白区域时如何取消选择所有选定的项目

    当我有几个 甚至一个 selected items我按简单click在我的空白处ListView 空白 非行 我想取消选择所有选定的项目 这是我取消选择所有项目的功能 private void DeselectAllListViewItem
  • listview.setOnItemClickListener 和 row.setOnClickListener 的区别

    我正在创建一个自定义数组适配器 现在我想实现一个处理单击视图的函数 我心里有两个选择 但我想知道性能 工作速度或其他方面是否存在差异 选项 1 在 arrayAdapter 本身中 row setOnClickListener new On
  • Android:对于具有 LinearLayout 定义的成员的 ListView,上下文菜单不显示?

    我有一个 ListActivity 和 ListView 并且我已将一些数据绑定到它 数据显示得很好 而且我还为视图注册了一个上下文菜单 当我将列表项显示为简单的 TextView 时 它工作正常
  • 将 Microsoft.NETCore.App 更新到 v1.1.0 会导致 -2147450749 (0x80008083)

    我按照以下说明在 Visual Studio 2015 中创建了一个新的 NET Core 项目 https www microsoft com net core windowsvs2015 https www microsoft com
  • 如何在ListView中标记视图?

    我有一个带有列表视图的应用程序 列表视图工作正常 当我希望列表以标记的某些行开始时 问题就开始了 如果我按下它 我可以标记一行 但是 似乎没有找到一种方法来在初始化时标记任何行 这是我的代码 listViewOfBluetooth getL
  • ItemSource 中具有不同类型数据的 ListView 多行列标题

    继续this https stackoverflow com q 26712051 1997232问题 我想实现这种ListView 它应该有两件事 多行列标题 不同的数据类型通过绑定ItemsSource以不同方式显示 为了解决 1 我尝
  • Windows 10 IoT Raspberry Pi 2:自动启动已发布的应用程序

    我开始体验在 Windows 10 上进行 Raspberry Pi 2 开发 我想知道如何配置 Raspberry Pi 2 以自动启动我在 Visual Studio 中开发的自己发布的应用程序 此外 如何在我的设备上设置时间和区域 非

随机推荐

  • Android FloatingActionButton 带有片段和底部导航栏

    我正在创建一个具有以下结构的 Android 应用程序 主要活动有一个底部导航栏 可在 3 个不同的片段之间切换 其中 2 个片段将显示项目列表 并使用浮动操作按钮 FAB 添加新项目 第三个片段将显示不同的内容 不需要 FAB 基于此 F
  • 使用 gradle 进行简单的 protobuf 编译

    如果您正在寻找示例 gradle protobuf 项目 请查看here https github com google protobuf gradle plugin tree master examples exampleProject
  • “没有路线匹配”错误?

    我是新的 Rspec 刚刚开始在 Rails 3 上生成一个新的控制器 它默认生成一些 Rspec 测试 我有一个关于如何让它们通过的问题 就目前情况而言 我在我的终端中看到了这个测试 1 BuildingsController GET s
  • 将数据写入文本文件

    我有一个简单的程序 将 7 个数字中的 6 个写入文本文件 从逻辑上讲 一切似乎都很好 但是 数字并未按预期写入文件 Random random new Random Console WriteLine Please enter the n
  • 将 json 数据 objectForKey 分配给类的属性的替代语法

    我可以将最后三行代码写在一行中吗 NSArray latestLoans self JsonData objectForKey loans for id object in latestLoans NSDictionary loan obj
  • 使用 Testcafe 访问 OpenVPN 限制的网站

    有一个网站只有在运行 OpenVPN Connect 2 1 3 111 配置文件时才能访问 我需要使用 Testcafe 访问该网站 但到目前为止我还没有找到任何有关使用 Testcafe 与 VPN 的文档 有什么我可能错过的吗 测试通
  • git clone 永远挂在 github 上

    当我按照 github 中的第 5 点 测试所有内容 时guide http help github com linux set up git ssh 命令也永远挂起 根据该指南 我应该看到一条消息 Github 不提供 shell 访问
  • Python 使 UMAP 更快(呃)

    我正在使用 UMAP https umap learn readthedocs io en latest https umap learn readthedocs io en latest 以减少数据的维度 我的数据集包含 4700 个样本
  • Math.min.apply 对于 null 返回 0

    我想从数组中获取最小值 如果数据包含null value Math min apply回报0 for null价值 请参见这个 JSFiddle 示例 http jsfiddle net jeryslo 7DCXw 即使数组中存在空值 如何
  • 使用 DirectSound 向后读取声音

    是否可以使用 DirectSound 的托管版本向后读取声音 如果没有 是否有另一个库可以轻松实现 您可以使用 WaveFileReader 和 WaveFileWriter 类NAudio http www codeplex com na
  • 如何在 python-docx 中将页面大小更改为 A4

    我尝试使用 python docx 创建 Word 文档 创建的文件的字母尺寸为 8 5 x 11 英寸 但在德国 标准格式是 A4 8 27 x 11 69 英寸 from docx import Document from docx s
  • 从工作线程 C# CF 在主线程中抛出事件

    我有 可能是 一个简单的问题 我正在使用互操作来调用 CompactFramework 中的异步函数 获得执行结果后 我想引发一个事件 该事件将被表单捕获 并根据结果 我将在屏幕上呈现一些数据 然而 问题是 当互操作函数返回结果时 它会在工
  • 找出数组中重复的元素

    有一个大小为 n 的数组 数组中包含的元素在 1 到 n 1 之间 每个元素出现一次 只有一个元素出现多次 我们需要找到这个元素 尽管这是一个非常常见的常见问题解答 但我仍然没有找到正确的答案 大多数建议是我应该将数组中的所有元素相加 然后
  • 在 Swift 中将 Int 更改为 CGFloat 以返回 heightForRowAtIndexPath tableview 函数

    我确信我错过了一些非常简单的东西 但我就是无法让它发挥作用 我会尽力更好地解释我正在做的事情 以帮助其他遇到同样问题的人 这是我的职能 func tableView tableView UITableView heightForRowAtI
  • 更新数据库时 LiveData 列表不更新

    我目前正在重构遗留代码以使用 Android 架构组件 并在一种存储库模式中设置房间数据库和齐射请求 因此 表示 域层要求存储库获取 LiveData Objects 来观察或告诉他与服务器同步 然后删除旧的数据库条目并从服务器重新获取所有
  • Dockerfile FROM 与 Docker-compose IMAGE

    我目前正在学习Docker 阅读文档和几篇文章后 我显然有更多的问题而不是答案 目前对我来说最有趣的是 FROM some docker image 在 Dockerfile 和 image digitalocean com php 在 d
  • Windows 操作系统中无法访问的 IP 套接字关闭时间

    这些代码通过用户数据报协议提供发送数据 下面有两个代码 当我使用第一个代码来处理无法访问的 IP 地址时 我得到了三秒的延迟 请查看新结果标题 只需打开新的 C 控制台应用程序并将这些代码粘贴到其中 第一个代码 using System u
  • 尝试编辑时,Rails form_for 结果是 POST 而不是 PUT

    我在用Rails 4并出现以下错误 路由错误没有路线匹配 POST logs 1 meals 13 edit 我使用 meal 传递模型对象的 form 并且编辑页面正确呈现 然而 Rails 似乎并没有检查膳食对象是否已经保存 因此它不断
  • 在车把模板中显示 hasMany ember 关系中的第一项

    我需要显示 hasMany 关系中的第一项 基本上一个线程可以有多个作者 但我只需要在特定模板中显示第一个作者 我有以下 json threads id 1 authors 2 3 authors id 2 fullname foo id
  • 在 Windows 10 UWP 应用程序中创建可滑动的 ListView,例如在地图应用程序中

    我正在创建 UWP 应用程序 我需要在滑动菜单中显示一系列结果 滑动菜单可滚动并且可以滑动改变其高度就像 Windows 10 Mobile 中的地图应用程序中的搜索结果一样 我找不到任何教程来创建这样的体验 提前致谢 您也可以使用User