XNAでサポートされている画面解像度を取得するにはどうすればよいですか?ウィンドウ内で画面の解像度を変更し、可能なすべての選択肢のリストを表示するのではなく、いくつかの選択肢しか表示されません。XNAでサポートされている画面解像度を取得しますか?
3
A
答えて
5
ちょうどこれを使用:
foreach (DisplayMode mode in GraphicsAdapter.DefaultAdapter.SupportedDisplayModes) {
//mode.whatever (and use any of avaliable information)
}
しかし、あなたはそのaswelが含まれ、または何らかのフィルタリングを行う可能性がありますので、それはまた、accoundのrefrash率にかかるので、それは、あなたにいくつかの重複を与えるだろう。
3
私はXNAの最新バージョンではありませんが、すばやく簡単な機能はないと思いました。古いWinForms APIを使用する方法がありますが、個人的には他のアプリケーションとリンクしたくないので、最も簡単な方法はネイティブ関数を使用することです。
[DllImport("user32.dll")]
private static extern bool EnumDisplaySettings(string lpszDeviceName, int iModeNum, ref DEVMODE lpDevMode);
[DllImport("user32.dll")]
private static extern int GetSystemMetrics(int nIndex);
そして最後に、私達の機能はすべてを一覧表示する:我々はまた、我々が使用する2つのネイティブ関数を定義する必要が
[StructLayout(LayoutKind.Sequential)]
internal struct DEVMODE
{
private const int CCHDEVICENAME = 0x20;
private const int CCHFORMNAME = 0x20;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x20)]
public string dmDeviceName;
public short dmSpecVersion;
public short dmDriverVersion;
public short dmSize;
public short dmDriverExtra;
public int dmFields;
public int dmPositionX;
public int dmPositionY;
public int dmDisplayOrientation;
public int dmDisplayFixedOutput;
public short dmColor;
public short dmDuplex;
public short dmYResolution;
public short dmTTOption;
public short dmCollate;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x20)]
public string dmFormName;
public short dmLogPixels;
public int dmBitsPerPel;
public int dmPelsWidth;
public int dmPelsHeight;
public int dmDisplayFlags;
public int dmDisplayFrequency;
public int dmICMMethod;
public int dmICMIntent;
public int dmMediaType;
public int dmDitherType;
public int dmReserved1;
public int dmReserved2;
public int dmPanningWidth;
public int dmPanningHeight;
}
:
まず、使用されるネイティブの構造体を定義します画面の解像度と現在の画面解像度を取得するには:
public static List<string> GetScreenResolutions()
{
var resolutions = new List<string>();
try
{
var devMode = new DEVMODE();
int i = 0;
while (EnumDisplaySettings(null, i, ref devMode))
{
resolutions.Add(string.Format("{0}x{1}", devMode.dmPelsWidth, devMode.dmPelsHeight));
i++;
}
resolutions = resolutions.Distinct(StringComparer.InvariantCulture).ToList();
}
catch (Exception ex)
{
Console.WriteLine("Could not get screen resolutions.");
}
return resolutions;
}
public static string GetCurrentScreenResolution()
{
int width = GetSystemMetrics(0x00);
int height = GetSystemMetrics(0x01);
return string.Format("{0}x{1}", width, height);
}
関連する問題
- 1. XNA - 現在の画面解像度を取得
- 2. SDL2で更新された画面解像度を取得
- 3. Mac OSXログイン画面の画面解像度を取得
- 4. C++で画面解像度を取得するには?
- 5. 複数の画面解像度をサポートできません
- 6. 画面解像度で画像を切り取る
- 7. 画面解像度
- 8. 画面解像度
- 9. 画面解像度
- 10. ライブブラウザの画面解像度を取得する方法
- 11. サムスン7インチタブレットの画面解像度を取得するには?
- 12. windows-golangの画面解像度を取得する方法
- 13. UWPの画面解像度を取得する
- 14. OS Xでプログラムで画面解像度を取得
- 15. jQueryを使用してネイティブ画面解像度を取得する
- 16. メインクラス(XNA)にない画面の幅/高さを取得する
- 17. QTが拡張モニタなしで画面解像度を取得する
- 18. 他の接続されているモニタの画面解像度を取得する方法
- 19. JavaFX画面解像度スケーリング
- 20. ロゴ、画面解像度
- 21. 画面解像度とCSS
- 22. ブラウザの画面解像度?
- 23. Android画面解像度
- 24. Nightmarejs画面解像度
- 25. ユニティアンドロイド画面解像度
- 26. フォント解像度は、画面の解像度に応じて
- 27. jQuery画面解像度高さ調整
- 28. MFCとWindows APIの画面解像度を取得する際の違い
- 29. XNA:画面の幅と高さを取得する
- 30. 他の画面で画面解像度が失敗する
受け入れられた答えが行く方法ですが、XNAとは独立した方法を説明するため+1してください。 –