首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子节目指南(EPG) XAML

电子节目指南(EPG) XAML
EN

Stack Overflow用户
提问于 2014-12-29 15:17:29
回答 1查看 579关注 0票数 4

是否有一种方式来实现EPG使用XAML用于WinPhone/WinRT?我看到了很多iOS/Android/Web应用程序这样做,但没有WP或WinStore。

  1. 它应该支持大量的项目(500个频道,每个频道有N个节目,其中N是每周的节目数量)。
  2. 它可以在内部有空白,就像某些程序丢失了或整行中没有数据一样,但是仍然应该显示空(透明)行。
  3. 每行的项目数总是不同的(这就是EPG的工作方式)。
  4. 加载应是快速和滚动平稳。
  5. 内存使用应该是正常的,应用程序不应该崩溃,因为许多绘制的视图都需要虚拟化(重用)。

GridView看起来有点类似,但也存在一些问题:

  • 要使项目的大小不同,需要将itemsPanel切换到不支持虚拟化的VariableSizedWrapGrid。有一些解决这个问题的尝试,比如,但不是本机/测试/广泛使用的解决方案。
  • 不确定即使使用VariableSizedWrapGrid也能支持空白和内容缺失,看起来GridView在任何情况下都会填补空白元素(创建空的透明项听起来像是肮脏的攻击)。
  • 许多项目都会出现问题,需要以某种方式进行增量加载。
  • 内存使用/性能下降看起来不错

有人实施了吗?有这方面的组件/指南吗?哪个xaml控件将允许这样做,性能/内存/时间如何?

EN

回答 1

Stack Overflow用户

发布于 2016-01-05 19:35:24

不久前,我为UWP做了一个xaml epg,在许多POCs之后,我使用了一个带有ScrollViewer的简单网格,其中的列和行是从后面的代码(大部分代码都在后面的代码上)和几个ListView动态生成的。

我们还编写了自己的数据虚拟化(因为Grid不支持虚拟化).

WinRT XAML工具包-非常方便

这不是一个简单的任务,但它是可行的:)

假设您有一些EPG数据模型,类似于- List (每个通道都有一个程序列表)。

我所做的是--我创建了一个封装在ScrollViewer中的空网格,然后我为每个通道关联了一个RowDefinition,然后添加到网格中(按频道索引)。

传播程序-更复杂(因为有些程序有时间重叠)。我将每个程序作为边框元素添加到通道RowDefinitios中--通过边距将其放置到时间计算中。

数据虚拟化--我所做的是计算用户可见的时间(Rect类型的viewPort ),然后,当用户滚动时,我只加载了与ViewPort相交的程序/通道。例如,如果用户在14:00-18:00查看EPg,我就不会将18:05程序加载到视图中。

选择一个程序(展开详细信息)-当您选择时,您可以简单地设置所选程序及其RowDefinition的宽度。

  • 这里的主要问题是键盘识别(这是一件很难实现的事情),但是如果您面向触摸/鼠标,那么导航问题就解决了。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27691444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档