【发布时间】:2012-07-03 12:28:00
【问题描述】:
我正在开发一款 Silverlight/XNA 游戏。有这样的结构:
- 我的 GamePlay 类继承自 InGamePage。
- InGamePage 继承自 PhoneApplicationPage。
- InGamePage 有一个 OnLayoutUpdated 方法来渲染 SL 控件(使用 UIElementRenderer )。
这是根据 SL/XNA code sample
一切正常,直到我决定在 gamepage.xaml 中创建一个文本块。我希望该 textBlock 显示一些静态游戏变量(例如英雄覆盖的距离)。
现在我应该在哪里写这行:
debugTextBlock.Text = GameData.data.distanceCovered;
以便文本块显示当前值。 (我试图挂钩一个 LayoutUpdate,但它抛出 Application_UnhandledException 说“检测到布局周期。布局无法完成。”)
非常感谢任何提示/链接。
【问题讨论】:
-
抛出的异常是什么?
-
@Rowland 编辑了问题,但例外是(“检测到布局周期。布局无法完成。”)
-
你看到this earlier question了吗?
-
这对@Rowland 没有多大帮助,我猜它的 SL+XNA 会阻止两个控件同时渲染。因为如果我尝试在任何事件上更新 debugTextBlock.Text 它工作正常。
-
如果你解释了你试图从哪里设置文本会有所帮助——如果它来自你覆盖的
OnLayoutUpdated我可以理解你试图在渲染过程中改变一些东西(这可能会改变一堆其他东西的位置)-您已经发现,如果您更改更新文本的位置,它将起作用,所以这听起来像是您的解决方案。
标签: silverlight windows-phone-7 xna