【问题标题】:How do I move a canvas on the listview?如何在列表视图上移动画布?
【发布时间】:2016-09-08 21:51:03
【问题描述】:

我想在列表视图上保留一个始终位于最顶层的画布。画布应该在窗口上拉伸,如果用户尝试滚动列表视图,列表视图必须滚动,但画布必须透明地位于最顶部,并且用户可以看到列表视图。我的 XAML 树如下所示:

 <Grid>
        <ScrollViewer>
            <ListView>
            </ListView>
        </ScrollViewer>
        <Canvas Name="DxPanel"></Canvas>
 </Grid>

我正在尝试制作笔记应用程序。像这样的要求:

  1. 每个列表视图都有图像或richeditbox控件(我已经做了)
  2. 用户可以在图像或富文本上绘制一些东西
  3. 列表视图必须具有无限滚动能力,列表视图的数据必须从数据库和数据中检索,并且必须支持 UI 回收。
  4. 绘图层必须是无限滚动

我知道这是一项艰巨的挑战。我打算将 stroke 和 text 数据保存在 db 中,将 image 数据保存在 disk 中。

【问题讨论】:

  • 当前代码有什么问题?
  • 您正在开发什么应用程序?它不能同时是 wpf 和 uwp。
  • 是的,你是对的。这是一个 uwp 应用程序。

标签: xaml windows-phone uwp


【解决方案1】:

首先我要说的是,ScrollViewer里面不用ListView,默认情况下ListView如果有很多项目可以滚动,这是因为有一个@987654325 @在ListView的模板里面,可以参考默认的ListView styles and templates

那么,如果你的Canvas 一直覆盖ListView,你的ListView 就无法集中注意力,更不用说让ListView 滚动了。所以我建议你重新考虑一下,为什么你的Canvas 应该是最透明的?

如果你想让你的ListView可以滚动/聚焦,同时可以看到你在Canvas的布局,那么你可以把ListView放在Canvas上面,默认背景为ListView 是透明的。

您可以发表评论告诉我们您的Canvas 中有什么,为什么这个Canvas 应该被拉伸并放在ListView 的顶部,也许我们可以尝试找到其他方法来解决您的问题.

【讨论】:

  • 您好,格蕾丝,感谢您的回复。实际上,我正在尝试制作一个更吸引人的应用程序。像这样的要求: 1.每个列表视图都有图像或richeditbox控件(我已经做过) 2.用户可以在图像或富文本上绘制一些东西 3.列表视图必须具有无限滚动能力,列表视图的数据必须从必须支持数据库和数据以及 UI 回收。 4.绘图层必须无限滚动 我知道这是一个艰巨的挑战。我打算将 stroke 和 text 数据保存在 db 中,将 image 数据保存在磁盘中。
  • 前三个条件问题不大,但是对于“4.绘图层必须无限滚动我知道这很难挑战。”我建议点击ListView的一项后,显示一个带有滚动查看器的对话框,或者只是在其中创建一个带有SrollviewerOKCancel 按钮的Grid 以使其可见。点击对话框或此网格上的OK 按钮后,使此绘图布局消失。您如何看待这种解决方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多