如何在列表视图上移动画布?

时间:2016-09-08 21:51:04

标签: xaml windows-phone uwp

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

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

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

  1. 每个listview都有图像或richeditbox控件(我已经完成了)
  2. 用户可以在图像或富文本上绘制内容
  3. 列表视图必须具有无限滚动功能,列表视图的数据必须从数据库和数据中检索,并且必须支持UI回收。
  4. 绘图图层必须是无限滚动
  5. 我知道这是一项艰巨的挑战。我打算在数据库中保存笔划和文本数据,并在磁盘中保存图像数据。

1 个答案:

答案 0 :(得分:0)

首先,我需要说,没有必要在ListView内放ScrollViewer,默认情况下ListView可以滚动,如果有很多项目,这是因为ScrollViewer模板中有ListView,您可以参考默认的ListView styles and templates

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

如果您希望ListView可以滚动/聚焦,同时可以看到Canvas中的布局,那么您可以将ListView置于{{1}之上默认情况下,Canvas的背景是透明的。

您可以发表评论,告诉我们ListView中的内容,为什么Canvas应该延伸到Canvas的顶部,也许我们可以尝试查找解决问题的其他方法。