【问题标题】:Silverlight - how to render image from non-visible data bound user control?Silverlight - 如何从不可见的数据绑定用户控件呈现图像?
【发布时间】:2011-02-13 12:50:48
【问题描述】:

我有这种情况 - 我想建立时间线控制。所以我有 UserControl 和 ItemsControl (每一行代表某个人)。 ItemsControl 包含另一个 ItemsControl 作为 ItemsControl.ItemTemplate - 它显示例如按事件日期安排的人的事件。

所以它看起来像某种带有日期作为列标题的网格,例如人民作为行标题。 ......................|.2010.01.01.....2010.01.02.....2010.01.03
亚当·史密斯....|......[some event#1]..... [一些事件#2]......

约翰·道.......|...[一些事件#3].....[一些事件#4]............

我可以有很多人(ItemsControl #1 - 100-200 个项目),并且有一天会发生很多事件(每人一天 1-10-30 个事件)

问题是当用户滚动 ItemsControl #1/#2 时,它发生得太慢了,因为很多元素应该一次呈现(因为我在特定事件的描述中有一些文本框和其他元素)

问题 #1 - 我该如何改进?可能有人知道建立这种用户控制的更好方法吗?我不得不提一下,我正在使用自定义虚拟面板,基于在互联网某处找到的一些自定义虚拟面板实现......

问题 #2 - 我想在 WriteableBitmap 的帮助下制作图像,并将数据绑定控件渲染到图像并显示图像而不是很多元素。问题是我正在尝试渲染不可见的数据绑定控件(在后面的代码中创建)并且它的实际宽度/高度等于零(所以没有渲染)即使我正在使用 Dispatcher.BeginInvoke(() => {.. .} 方法。我该如何解决?

非常感谢您的帮助!

【问题讨论】:

    标签: silverlight image user-controls render databound


    【解决方案1】:

    关于问题 #1:Nested ItemsControl 虚拟化很棘手。问题是即使最外面的控件支持虚拟化,内部控件的长度也是无限的,因此会实例化它们的所有子控件。与其在另一个中托管 ItemsControl,不如将所有数据合并到同一个列表中,使用样式来模拟层次结构。或者,找到支持嵌套虚拟化的商业数据网格控件。

    【讨论】:

      猜你喜欢
      • 2013-03-30
      • 1970-01-01
      • 2023-03-24
      • 2011-11-16
      • 2010-12-20
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 2010-11-18
      相关资源
      最近更新 更多