2011-10-22 82 views
2

作为Silverlight的新手,我正努力尝试以下内容。Silverlight(wp7)

基本上我想创建一些形式的网格像控制(自定义或用户?)。

这个想法与计划者的想法相似。沿着顶部是时间(设定间隔)。向下是主题。然后像背景矩形(或其他东西)一样表示主题计划的时间。

以上的实际设计不是问题。即覆盖有矩形的网格。但我的问题是我希望这个网格上下滚动(当主题行开始和结束时,边界固定顶部和底部)。并且网格左右滚动(边界固定左右滚动的距离,当前时间为&)。

基于上述需求,我不希望创建一个非常大的控件,只是拖到视图中(除非这是唯一的方式?),而是在当前时间显示网格并拖动时动态加载接下来的几小时内容,可能有几个小时的缓冲区。

我在寻找的外表是它看起来像是一个巨大的控制,但它真的不是它的动态。

这是否有意义?我什么都不担心?我应该在未来创建一个大型网格,然后在顶部动态处理数据加载?如果我想在未来3个月内使用电网,这只是我的担忧,这将会是巨大的浪费内存。

我努力在网上找到例子,但觉得这可能与我不知道要搜索什么。这不是要得到一个详细的答案,而是有人为我做这件事,而不是指导我指向正确的方向。

非常感谢

回答

1

关于上下滚动:你可以简单地把包含ScrollViewer控件数据网格 - 这将处理所有的滚动你。另一种解决方案是使用列表框控件 - 如果使用MVVM,这会更好。您可以将其绑定到数据源并将其设置为数据模板的自定义控件。

用于左右滚动。我在想你可以用这个手势。像 - 从左到右和从右到左轻拂,并根据手势的方向更改网格/列表框中的数据。你也可以在网格的顶部放置两个按钮来处理从一天到另一天的滚动(就像在日历控件中:手势+按钮一样)。

+0

我喜欢按照日历使用手势和按钮的想法。我仍然认为应用程序需要网格像滚动一样显示,即使它没有,也只是它正在移动的数据。这样可以更容易地看到哪些东西的开始和结束可能跨越数小时。 – Tezza

+0

您也可以使用滚动查看器来处理左右滚动。所有你需要做的就是使'Horizo​​ntalScrollBarVisibility'成为'Auto'。下面我简要地演示了它的工作原理。只需将xaml复制到项目的amty页面中,以替换LayoutRoot网格。 –

+0

代码太长了,所以我已经做了一个项目,并把它放在我的保管箱中,所以你可以下载它。链接:[链接](http://dl.dropbox.com/u/20848147/StartDebugging/ScrollingGrid.rar) –