重绘的Silverlight画布

问题描述:

在我的申请,我根据一些数据,我有画的房间。在那个“房间”里我有货架(这只不过是布局网格)。用户可以对代表货架部分的网格中的单元格执行多项操作。 (如为产品专用货架空间)。一旦完成了针对房间的操作,我想重新绘制房间,就像该页面刚刚第一次加载一样。我似乎无法得到这个工作。重绘的Silverlight画布

我试图清除画布的孩子,然后再返回房间,但我只得到一个空白页。代码很简单:

LayoutRoot.Children.Clear(); 
NavigationService.Navigate(new Uri("/TheRoom", UriKind.Relative)); 

我已经尝试了许多其他方法,但没有一个已经工作。任何人都可以告诉我,如果我在这里使用正确的方法,或者有什么我错过了,你可以看到?

+0

这个[问题](http://stackoverflow.com/questions/552756/can-silverlight-initiate-page-refreshes)可能会有帮助。 – CodeNaked 2011-06-16 18:59:41

+0

网格上的“动作”到底是什么? – NestorArturo 2011-06-16 19:26:34

+2

如果您导航到当前页面,它将不会重新加载。你为什么不清理视觉树后立即调用你的代码来再次填充房间?我们确实需要更多关于您的网页如何运作以提供任何实际解决方案的信息 – 2011-06-16 20:43:29

有关调用InvalidateArrange()什么;或InvalidateVisual();我不记得它的这些功能可用于帆布VS面板和Silverlight VS WPF,但我知道他们中的一些。

如果画布不提供什么合适的方法失效,你总是可以继承面板,并创建自己的“画布”,并覆盖InvalidateArrange()做你所需要的。