2011-12-16 29 views
2

显然我希望这个答案是“不,它不会被渲染”。我问的原因是我继承的代码库非常大,并且占用了大量的内存。我仍然不知道是什么造成了这个问题。当在Silverlight中看不到对象/效果时渲染对象/效果?

我最近正在查看项目的模板继承,因为大多数常用控件都有默认模板。文本框,按钮等,都有默认的模板,大部分都是相互复制/粘贴的。与此相关的问题是原创是在Expression Blend中完成的,我相信并且最终会导致一系列实际上不会导致更改的设置。

我的问题是,在这些对象背后的模板中设置了某些图形效果,这些效果出现在整个场所,不会在视觉上做任何事情,但仍然设置。其中之一是背景中的渐变,但也有其他的。这可能会导致内存使用情况?授予这些是非常小的东西,但我知道从某些调试我已经做到了它的装载几乎一切从正在进行。所有的网页至少有他们可以处理,处理的内容。我不知道它是如何处理的,但就我的项目而言,它们存在并且必须保持。

回答

0

Silverlight控件通常不支持UI虚拟化(这正好是您所描述的官方术语)。

看到:http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx

有些人虽然。 DataGrid不是例如。如果这没有帮助,请提供有关您使用的控件的更多信息。

总结一下:它取决于容器。

你可以尝试的另一件事是实现这一点:http://kent-boogaart.com/blog/virtual-paging-in-silverlight

+0

我相信99%没有明显的标记虚拟化使用的容器。它的Stackpanel,网格,画布,项目控制,边框等。 由于我有一个Telerik产品虚拟化功能打破了功能的实例,我也有点担心它会大范围地实现它们。 最有可能发生的是有一个渐变的定义,它是遍布整个地方,并在模板的背景定义(如按钮模板)。它不是那么多,我的东西是在彼此之上,它更像是我有一个背景的边界,但我也填写内容 – StephenT 2011-12-20 16:01:46