c# - tamaño - ¿Cómo obtener la resolución de la pantalla? Para una aplicación WinRT?
redimensionar ventanas en c# (5)
¿Estás usando XAML? Si es así, no importa. Usa el control de cuadrícula Completará todo el espacio disponible. Lea el blog de Jerry sobre por qué es posible que desee usar xaml para el desarrollo de WinRT.
Quiero saber la resolución de la pantalla para poder establecer la altura de un elemento de acuerdo con la resolución en una aplicación de Windows 8.
¿Qué tal esto?
var bounds = Window.Current.Bounds;
double height = bounds.Height;
double width = bounds.Width;
Obtener los límites de la ventana actual es fácil. Pero supongamos que si desea establecer un tamaño de fuente grande para una pantalla más grande (la resolución es igual a 10 "dispositivo, pero la pantalla es 27"), esto no ayudará. Consulte Escala a diferentes pantallas. Utilicé el siguiente método para detectar el tamaño de la pantalla y cambiar el estilo de fuente del bloque de texto de forma adecuada.
void detectScreenType()
{
double dpi = DisplayProperties.LogicalDpi;
var bounds = Window.Current.Bounds;
double h;
switch (ApplicationView.Value)
{
case ApplicationViewState.Filled:
h = bounds.Height;
break;
case ApplicationViewState.FullScreenLandscape:
h = bounds.Height;
break;
case ApplicationViewState.Snapped:
h = bounds.Height;
break;
case ApplicationViewState.FullScreenPortrait:
h = bounds.Width;
break;
default:
return;
}
double inches = h / dpi ;
string screenType = "Slate";
if (inches < 10)
{
screenType = "Slate";
} else if (inches < 14) {
screenType = "WorkHorsePC";
}
else
{
screenType = "FamilyHub";
}
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["screenType"] = screenType;
}
Probablemente, la mejor opción para las aplicaciones habilitadas para DirectX, sin embargo, aplicable a todos los demás tipos de aplicaciones metropolitanas es:
PD Vamos, ¿el tamaño de la ventana determina la resolución de la pantalla? ¿Qué hay de los modos ajustados / llenos? Este mundo está muy roto: - /
aparentemente todavía no tengo suficientes representantes para responder a las publicaciones, pero con respecto a la respuesta de @Krishna, vale la pena señalar que su solución requiere:
using Windows.UI.Xaml;
probablemente no sea un problema para la mayoría de ustedes, pero en mi caso (tratando de obtener la resolución de ejecutar la aplicación desde una biblioteca importada), no estaba allí por defecto.
Espero que esto ayude a alguien más...