我正在使用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;
}
答案 0 :(得分: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
答案 1 :(得分:1)
Application.Current.RootVisual.RenderSize
应该会提供这些信息。
或者您可以尝试:
int ScreenWidth = Application.Current.Host.Content.ActualWidth;
int ScreenHeight = Application.Current.Host.Content.ActualHeight;