重绘Silverlight画布

时间:2011-06-16 17:47:06

标签: c# silverlight partial-page-refresh

在我的应用程序中,我根据我的一些数据绘制了一个房间。在那个“房间”里,我有架子(只不过是布局网格)。用户可以对代表货架部分的网格中的单元格执行若干操作。 (比如将货架空间专用于产品)。一旦针对房间完成了一个动作,我想重新绘制房间,就像第一次刚刚加载页面一样。我似乎无法让它发挥作用。

我试图清除画布上的孩子,然后导航回房间,但我只得到一个空白页面。代码非常简单:

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

我尝试了很多其他方法,但没有一种方法有效。任何人都可以告诉我,如果我在这里使用正确的方法,或者有什么我想念你能看到的东西?

1 个答案:

答案 0 :(得分:0)

如何调用InvalidateArrange();或InvalidateVisual();我不记得哪些功能可用于Canvas vs Panel和Silverlight vs WPF,但我知道其中一些是。

如果Canvas没有提供适当的失效方法,您可以随时继承面板并创建自己的“Canvas”并覆盖InvalidateArrange()以执行您需要的操作。