1

我为 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 被绘制,并且在其他控件应该出现的地方有空白的透明空间。

非常感谢任何帮助,我知道这可能是一个难以解决的问题。

4

0 回答 0