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 に答える