我正在使用XNA 4.0框架创建一个将在控制室中投影的商业智能屏幕。屏幕本身设计为适合串联的两台1920 * 1080投影机。
目前我正在定义屏幕的分辨率如下:
graphics.PreferredBackBufferWidth = 3840;
graphics.PreferredBackBufferHeight = 1080;
但是,如果我运行解决方案,XNA会自动“压缩”2D图形,以便整个屏幕适合我的主要1920 * 1080屏幕。如何禁用XNA中的“重新调整大小”功能?我想要实现的是一个大屏幕,我可以在两台1920 * 1080显示器上显示。不是适合一台显示器的压扁屏幕。
请注意,我的XNA知识非常有限。我正在使用SpriteFonts和Texture2D来创建图形对象
答案 0 :(得分:1)
您的解决方案应该如果您正在Game类构造函数中设置这些值,并且已配置屏幕以在它们之间扩展内容。
另一种(不是真正推荐的)方法是在Initialize
或LoadContent
方法上应用更改。
为此,请在设置尺寸后添加以下行:
this.graphics.ApplyChanges();
所以你的整个事情看起来像这样:
protected virtual void Initialize()
{
this.graphics.PreferredBackBufferWidth = 1024;
this.graphics.PreferredBackBufferHeight = 600;
this.graphics.ApplyChanges();
}
如果您不想使用ApplyChanges方法,则可以在类构造函数上设置值,而无需调用此方法。
另外,请务必检查graphics.IsFullScreen
property是否设置为true。