我为 WP7 构建了一个游戏,它在同一页面中使用了 Silverlight 和 XNA 的组合。该页面包含 3 个单独的 Silverlight 控件,它们出现在 GamePage.xaml 页面中
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBox Name="box2" Height="74" Margin="0,0,132,8" TextWrapping="Wrap" Text="" VerticalAlignment="Bottom"/>
<TextBox Name="box1" Margin="0,480,8,82" TextWrapping="Wrap" Text="" IsReadOnly="True"/>
</Grid>
<Button Content=" send " Margin="0,0,20,8" Click ="sendMessage_Click" Grid.Row="1" Height="74" VerticalAlignment="Bottom" HorizontalAlignment="Right"/>
</Grid>
在 WP7 上,使用 GamePage.xaml.cs 中的此 C# 代码正确绘制了 3 个 Silverlight 控件
UIElementRenderer elementRenderer;
void GamePage_LayoutUpdated(object sender, EventArgs e)
{
if (ActualHeight > 0 && ActualWidth > 0 && elementRenderer == null)
{
elementRenderer = new UIElementRenderer(this, (int)ActualWidth, (int)ActualHeight);
}
}
private void OnDraw(object sender, GameTimerEventArgs e)
{
SharedGraphicsDeviceManager.Current.GraphicsDevice.Clear(Color.CornflowerBlue);
elementRenderer.Render();
spriteBatch.Begin();
spriteBatch.Draw(elementRenderer.Texture, Vector2.Zero, Color.White);
spriteBatch.End();
}
在 WP8 中,所有 3 个 Silverlight 控件都可以通过按下它们应该出现的位置来使用,但是只有 box1 被绘制,并且在其他控件应该出现的地方有空白的透明空间。
非常感谢任何帮助,我知道这可能是一个难以解决的问题。