0

我正在使用 Silverlight 和 XNA 框架开发游戏。我想获取移动屏幕的高度和宽度,以便在任何设备上运行应用程序。意味着所有设备都应该支持应用程序的扩展。

public partial class GamePage : PhoneApplicationPage
{
   public static ContentManager contentManager;
   GameTimer timer;
   SpriteBatch spriteBatch;
   GraphicsDeviceManager graphics;

   public GamePage()
   {
        InitializeComponent();

        //error at below line 
        graphics = new GraphicsDeviceManager(this);

        contentManager = (System.Windows.Application.Current as App).Content;

        rand = new Random();

        // Create a timer for this page
        timer = new GameTimer();
        timer.UpdateInterval = TimeSpan.FromTicks(333333);
        timer.Update += OnUpdate;
        timer.Draw += OnDraw;
    }
4

2 回答 2

2

请注意,我不确定这是否可以在移动设备上使用。GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width or Height会给你设备的屏幕分辨率,

graphics.PreferredBackBufferHeight = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height
graphics.PreferredBackBufferWidth = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width
graphics.ApplyChanges();

编辑:

使用 silverlight 你必须这样做:

Application.Current.Host.Content.ActualHeight;
Application.Current.Host.Content.ActualWidth;

GraphicsDevciceManager另请注意,silverlight 相当于SharedGraphicsDeviceManager

于 2013-10-26T13:00:37.623 回答
1

Application.Current.RootVisual.RenderSize应该给你这些信息。

或者您可以尝试:

int ScreenWidth = Application.Current.Host.Content.ActualWidth;  
int ScreenHeight = Application.Current.Host.Content.ActualHeight;
于 2013-10-26T13:31:53.757 回答