有没有办法使用XAML为WinPhone / WinRT实现EPG?我看到很多iOS / Android / Web应用程序正在这样做,但不是WP或WinStore。
GridView看起来类似,但有一些问题:
有人实施了这个吗?这有什么组件/指南吗?哪个xaml控件允许这样以及如何显示性能/内存/时间?
答案 0 :(得分:0)
我不久前为UWP
做了一个xaml epg,在经过大量的POC之后,我使用了一个带有ScrollViewer
的简单网格,其中的列和行是从后面的代码动态生成的(大部分代码都在代码背后)和几个ListView
。
我们还编写了自己的数据虚拟化(因为Grid不支持虚拟化)......
WinRT XAML工具包 - 非常方便
这不是一项简单的任务,但它是合法的:)
假设您有一些EPG数据模型,例如 - 列表(每个频道都有一个节目列表)
我做了什么 - 我在ScrollViewer中创建了一个空的Grid,然后我为每个通道关联了一个RowDefinition,然后将其添加到网格中(按通道索引)。
传播节目 - 更复杂(因为有些节目时间重叠)。我将每个程序作为Border元素添加到通道RowDefinitios中 - 通过 Margin to Time 计算它。
数据虚拟化 - 我所做的是计算用户可见的时间段(一个Rect类型的ViewPort)然后,当用户滚动时 - 我只加载了那些程序/通道与viewPort相交。例如,如果用户从14:00-18:00查看EPg,我不会将18:05程序加载到视图中。
选择程序(扩展以获取详细信息) - 您可以在选择时简单地设置所选程序的宽度及其RowDefinition。