2013-10-26 4 views
0

Я разрабатываю игру, используя Silverlight и XNA framework. Я хочу получить высоту и ширину мобильного экрана для запуска приложения на любом устройстве. Средство масштабирования приложения должно поддерживаться всеми устройствами.Как получить разрешение приложения 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; 
    } 

ответ

2

Обратите внимание, что я не уверен, что это доступно на мобильных устройствах. GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width or Height даст вам разрешение экрана устройства,

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

Edit:

Использование Silverlight вы должны сделать это:

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

отметить также SilverLight эквивалент GraphicsDevciceManager является SharedGraphicsDeviceManager

+0

он доступен, но только в XNA игре .... если вы делаете XNA плюс Silverlight то это дает ошибку – pravin

+0

Что это за ошибка? – Cyral

+0

наилучшее перегруженное соответствие метода для Microdoft.XNA.framework.graphicsdevicemanager (micorsoft.xna.framework.game) имеет некоторые недопустимые аргументы – pravin

1

Application.Current.RootVisual.RenderSize должен предоставить вам t информация о шляпе.

Или вы можете попробовать:

int ScreenWidth = Application.Current.Host.Content.ActualWidth; 
int ScreenHeight = Application.Current.Host.Content.ActualHeight; 
Смежные вопросы