Olá pessoal, tudo bom?
O Windows Phone 8 update 3 suporta aparelhos com resoluções WVGA, WXGA, 720p e 1080p, diferente do que acontece com o Windows Phone 7.1 que suporta apenas a resolução WVGA, assim, resolvi escrever esse post para ajudar em situações onde o desenvolvedor precise determinar a resolução do dispositivo para ajustar o layout ou outros detalhes da APP.
Para perceber melhor as diferenças entre as resoluções observe a tabela e a figura abaixo:
Resolução | Aspecto | Resolução dimensionada | |
WVGA | 480×800 | 15:9 | 480×800 |
WXGA | 768×1280 | 15:9 | 480×800 |
720p | 720×1280 | 16:9 | 480×853 |
1080p | 1080×1920 | 16:9 | 480×853 |
Fonte: https://msdn.microsoft.com/… |
Dado o exposto, vejamos como reconhecer a resolução do dispositivo via código C#.
1º passo: Criar uma classe que retorne a resolução do aparelho. No meu exemplo a classe foi nomeada como ResolucaoTela.cs e na solução do Visual Studio está acomodada em uma pasta chamada Helper.
using System;
namespace ResolucaoTela.Helper
{
public enum Resolucoes { WVGA, WXGA, HD };
public static class ResolucaoHelper
{
private static bool IsWvga
{
get { return App.Current.Host.Content.ScaleFactor == 100; }
}
private static bool IsWxga
{
get { return App.Current.Host.Content.ScaleFactor == 160; }
}
private static bool IsHD
{
get { return App.Current.Host.Content.ScaleFactor == 150; }
}
public static Resolucoes ResolucaoAtual
{
get
{
if (IsWvga) return Resolucoes.WVGA;
else if (IsWxga) return Resolucoes.WXGA;
else if (IsHD) return Resolucoes.HD;
else throw new InvalidOperationException("Resolução desconhecida.");
}
}
}
}
2º passo: No code-behind da página XAML fazer uso da classe definida acima e determinar a resolução atual para a APP
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
switch (Helper.ResolucaoHelper.ResolucaoAtual)
{
case Helper.Resolucoes.WVGA:
txtResolucao.Text = "WVGA - 480 x 800 - Resolução dimensionada: 480 x 800";
break;
case Helper.Resolucoes.WXGA:
txtResolucao.Text = "WXGA - 768 x 1280 - Resolução dimensionada: 480 x 800";
break;
case Helper.Resolucoes.HD:
txtResolucao.Text = "HD - 720 x 1280 - Resolução dimensionada: 480 x 853";
break;
}
...
...
Fica a dica!
Abraços,
Eduardo Henrique Rizo (@eduardorizo)
Post Relacionado:
Fonte: Blog do Eduardo H. Rizo
Comentários