Я хочу получить соотношение сторон монитора как две цифры: ширина и высота. Например, 4 и 3, 5 и 4, 16 и 9.Получить соотношение сторон монитора
Я написал код для этой задачи. Может быть, это более простой способ сделать это? Например, некоторые библиотеки функция = \
/// <summary>
/// Aspect ratio.
/// </summary>
public struct AspectRatio
{
int _height;
/// <summary>
/// Height.
/// </summary>
public int Height
{
get
{
return _height;
}
}
int _width;
/// <summary>
/// Width.
/// </summary>
public int Width
{
get
{
return _width;
}
}
/// <summary>
/// Ctor.
/// </summary>
/// <param name="height">Height of aspect ratio.</param>
/// <param name="width">Width of aspect ratio.</param>
public AspectRatio(int height, int width)
{
_height = height;
_width = width;
}
}
public sealed class Aux
{
/// <summary>
/// Get aspect ratio.
/// </summary>
/// <returns>Aspect ratio.</returns>
public static AspectRatio GetAspectRatio()
{
int deskHeight = Screen.PrimaryScreen.Bounds.Height;
int deskWidth = Screen.PrimaryScreen.Bounds.Width;
int gcd = GCD(deskWidth, deskHeight);
return new AspectRatio(deskHeight/gcd, deskWidth/gcd);
}
/// <summary>
/// Greatest Common Denominator (GCD). Euclidean algorithm.
/// </summary>
/// <param name="a">Width.</param>
/// <param name="b">Height.</param>
/// <returns>GCD.</returns>
static int GCD(int a, int b)
{
return b == 0 ? a : GCD(b, a % b);
}
}
Как я и думал, функции библиотеки нет. Спасибо за ответ в любом случае;) –
Мое разрешение экрана 1813x1024, и я не уверен, почему он вернул «1024: 1813»? –
My Разрешение экрана: 1366 * 768, но оно возвращается 384: 683! что я могу сделать – user3290286