Curso Windows Phone – Menu hamburger com XAML e C#

drawericonOlá pessoal, tudo bom?

Neste post demonstro como criar uma APP Windows Phone com o recurso do “menu hamburger”.

Para quem não conhece o termo, o “menu hamburger” é aquele menu lateral que desliza sobre a tela principal da APP, geralmente ao tocar sobre um ícone semelhante a um hamburger, cuidadosamente posicionado em alguma parte da tela de sua aplicação. Outra forma de fazer esse menu aparecer é quando se desliza o dedo da esquerda para a direita na tela do seu celular.

menu-hamburger

Dada a introdução sobre o assunto, vamos agora verificar o necessário para codificar esse recurso em nossa APP.

Passo 1: Fazer referencia ao recurso DrawerLayout via Nuget

No Visual Studio, selecione o menu Tools –> NuGet Package Manager –> Package Manager Console

No Package Manager Console digite: Install-Package DrawerLayout

nuget-drawerlayout

Passo 2: Codificação XAML

Faça uma declaração para o XML Namespace do recurso DrawerLayout na página XAML onde você irá inserir o “menu hamburger”


xmlns:drawerLayout="using:DrawerLayout"

Na sequencia, declare a codificação XAML de forma similar ao conteúdo do exemplo abaixo:


<!-- IMPORTANTE A LEITURA DOS COMENTÁRIOS NO CÓDIGO -->

<Grid x:Name="layoutPadrao" Background="DarkGray">
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
  </Grid.RowDefinitions>

  <!-- Definição da barra de título da APP -->
  <Grid x:Name="barraTitulo" Grid.Row="0" Height="70" Background="{StaticResource PhoneAccentBrush}">
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto" />
      <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Image Grid.Column="0" HorizontalAlignment="Left"
           Tapped="Image_Tapped"
           Source="Assets/icon-menu.png" />
    <TextBlock Grid.Column="1" Foreground="White"
           Text="Blog do Eduardo H. Rizo"
           Style="{StaticResource SubheaderTextBlockStyle}"
           VerticalAlignment="Center" />
  </Grid>

  <!-- Definição do espaço reservado para
    o conteúdo principal da APP e para o
    menu hamburger -->
  <drawerLayout:DrawerLayout Grid.Row="1" x:Name="DrawerLayout">
    <!-- Conteúdo principal da APP -->
    <Grid x:Name="conteudoPrincipal" Margin="10,0,0,0">
      <TextBlock Text="Conteúdo principal da APP..." Style="{StaticResource SubheaderTextBlockStyle}" />
    </Grid>

    <!-- Conteúdo do menu hamburger -->
    <Grid x:Name="conteudoMenu" Background="White">
      <TextBlock Text="Opções do menu:" Padding="10"
           Foreground="Black"
           FontSize="24"
           Style="{StaticResource TitleTextBlockStyle}" />
      <ListView Name="lvOpcoesMenu" Margin="0,60,0,0" Tapped="lvOpcoesMenu_Tapped">
        <ListView.ItemTemplate>
          <DataTemplate>
            <TextBlock Text="{Binding}" Margin="15" HorizontalAlignment="Left"
                 VerticalAlignment="Center" FontSize="20"
                 Foreground="Black" />
          </DataTemplate>
        </ListView.ItemTemplate>
      </ListView>
    </Grid>
  </drawerLayout:DrawerLayout>
</Grid>

Passo 3: Codificação C#

Tendo feito a referência do passo 1 e as declarações XAML do passo 2, basta agora finalizar o exemplo com a codificação C# necessária para o mesmo.


//É IMPORTANTE A LEITURA DOS COMENTÁRIOS NO CÓDIGO

public MainPage()
{
  this.InitializeComponent();
  this.NavigationCacheMode = NavigationCacheMode.Required;

  //Inicialização do recurso DrawerLayout
  DrawerLayout.InitializeDrawerLayout();
  //Declaração de um vetor de opções fictícias de menu
  string[] opcoesMenu = new string[6] { "Opção 1", "Opção 2", "Opção 3", "Opção 4", "Opção 5", "Opção 6" };
  //Indicando o vetor de opções para o ListView que irá
  //exibir o menu dentro do espaço reservado para o menu hamburger
  lvOpcoesMenu.ItemsSource = opcoesMenu;
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{
  //Tratando o toque o menu físico de voltar (back)
  //do Windows Phone para situações onde o usuário queira
  //fechar o menu através dele.
  Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}

void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
  //Ao tocar no botão back do WP verificamos se
  //o menu está aberto para então fecha-lo ou sair da aplicação
  if (DrawerLayout.IsDrawerOpen)
  {
    DrawerLayout.CloseDrawer();
    e.Handled = true;
  }
  else
    Application.Current.Exit();
}

private void Image_Tapped(object sender, TappedRoutedEventArgs e)
{
  //Tratando o toque no ícone do menu hamburger
  //para abri-lo ou fecha-lo
  if (DrawerLayout.IsDrawerOpen)
    DrawerLayout.CloseDrawer();
  else
    DrawerLayout.OpenDrawer();
}

private async void lvOpcoesMenu_Tapped(object sender, TappedRoutedEventArgs e)
{
  //Tratamento para obter a opção do menu
  //hamburger selecionada pelo usuário
  var lv = sender as ListView;
  string opcao = lv.SelectedItem.ToString();
  var dialog = new MessageDialog(opcao, "Opção selecionada:");
  await dialog.ShowAsync();
}

Espero ter ajudado.

Abraços,

Eduardo Henrique Rizo

MCP

Post Relacionado: 

Anúncios
Marcado com: , , , , , , , , ,
Publicado em Windows Phone

Como habilitar o Hyper-V ou o VirtualBox através do boot do Windows 8.1

hyper-v_virtualboxA coexistência entre dois Hypervisors instalados no mesmo equipamento é algo normalmente não suportado pelo sistema operacional, mas se você está lendo esse post, é porque assim como eu, já teve VMs preparadas para o Hyper-V e outras preparadas para o VirtualBox ou outro virtualizador qualquer.

Bem, devo lhe dizer que dois Hypervisors com seus serviços habilitados no mesmo instante não irá funcionar, porém há uma forma fácil de dar o boot no seu sistema operacional e então escolher se você irá, por exemplo, subir o SO com o Hyper-V ou se você irá subir o SO sem o Hyper-V para então poder habilitar o outro virtualizador que você precisa.

A estratégia seria criar uma cópia do procedimento de boot do SO acrescentando uma nova opção de boot sem o Hyper-V.

Para executar o procedimento abaixo é necessário abrir o Prompt de Comando com privilégios administrativos.


C:\>bcdedit /copy {current} /d "No Hyper-V"
The entry was successfully copied to {ff-23-113-824e-5c5144ea}.

C:\>bcdedit /set {ff-23-113-824e-5c5144ea} hypervisorlaunchtype off
The operation completed successfully.

Como no Windows 8.X temos a característica do FAST Boot, sendo assim, devo informar que para você ter acesso à nova opção será necessário selecionar a opção de reiniciar seu computador já mantendo tecla Shift pressionada.

Quando seu computador reiniciar irá aparecer uma tela com opções de boot, sendo que nesse caso, você deve escolher a opção “Use another operating system” e então estará disponível a opção de boot “No Hyper-V” configurada no procedimento acima.

Para voltar à configuração normal do SO, basta reiniciar o computador normalmente.

Grande abraço,
Eduardo Henrique Rizo

Marcado com: , , , , , ,
Publicado em Hyper-V, Windows 8

Curso Windows Phone – Como consultar compromissos na agenda do Windows Phone

Calendar-DateOlá pessoal, tudo bom?

Segue uma dica rápida para que você possa, através de sua APP, consultar compromissos que estejam registrados na agenda do Windows Phone.

Para obter acesso aos agendamentos do usuário será necessário declarar o uso do namespace Microsoft.Phone.UserData, pois é através dele que passaremos a ter acesso à classe Appointments.

A classe Appointments, dentre outras coisas, nos permite reallizar consultas na agenda do Windows Phone e então exibir os compromissos registrados dentro de um determinado período de tempo.

Para nosso exemplo, estou declarando em XAML um DataTemplate que depois será associado a um ListBox. Esse conjunto será o responsável pela exibição dos dados na tela da APP.


<phone:PhoneApplicationPage
x:Class="Infoeste2015.Calendario"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
shell:SystemTray.IsVisible="True">

<!-- DEFINIÇÃO DO DATATEMPLATE PARA EXIBIÇÃO DOS DADOS DA AGENDA. -->
<phone:PhoneApplicationPage.Resources>
 <DataTemplate x:Key="AtividadesItemTemplate">
  <StackPanel Margin="0,0,0,25">
   <TextBlock FontWeight="Bold" Text="{Binding Subject}" Style="{StaticResource PhoneTextTitle2Style}" />
   <TextBlock Text="{Binding Details}" TextWrapping="Wrap" FontWeight="Bold" Style="{StaticResource PhoneTextTitle3Style}" />
   <StackPanel Orientation="Horizontal">
    <TextBlock Text="{Binding StartTime, StringFormat='{}{0:dd/MM/yyyy}'}" Style="{StaticResource PhoneTextTitle3Style}" />
    <TextBlock Text="a" Style="{StaticResource PhoneTextTitle3Style}" />
    <TextBlock Text="{Binding EndTime, StringFormat='{}{0:dd/MM/yyyy}'}" Style="{StaticResource PhoneTextTitle3Style}" />
   </StackPanel>
   <TextBlock Text="{Binding Location, StringFormat='Local: {0:a}'}" Style="{StaticResource PhoneTextTitle3Style}" />
  </StackPanel>
 </DataTemplate>
</phone:PhoneApplicationPage.Resources>

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot">
 <Grid.Background>
  <ImageBrush ImageSource="Assets/Background/ImgFundo.png" />
 </Grid.Background>
<Grid.RowDefinitions>
 <RowDefinition Height="Auto"/>
 <RowDefinition Height="*"/>
</Grid.RowDefinitions>

<!--TitlePanel contains the name of the application and page title-->
<StackPanel Grid.Row="0" Margin="12,17,0,28">
 <TextBlock Text="INFOESTE 2015" Style="{StaticResource PhoneTextNormalStyle}"/>
 <TextBlock Text="minha agenda" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>

<!--ContentPanel - place additional content here-->
 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
 <!-- DEFINIÇÃO DO LISTBOX PARA EXIBIÇÃO DOS DADOS. REPARE O USO DO DATATEMPLATE ATRAVÉS DO ITEMTEMPLATE -->
 <ListBox Name="lblAgenda" Height="600" ItemTemplate="{StaticResource AtividadesItemTemplate}" VerticalAlignment="Top" />
 </Grid>
</Grid>

</phone:PhoneApplicationPage>

exemplo-agenda

Na sequencia temos a codificação necessária para acesso aos dados da agenda do Windows Phone.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using Microsoft.Phone.UserData;

namespace Infoeste2015
{
 public partial class Calendario : PhoneApplicationPage
 {
  public Calendario()
  {
   InitializeComponent();

   //DECLARAÇÃO DE UM OBJETO DA CLASSE APPOINTMENTS PARA RECUPERAÇÃO DOS DADOS DA AGENDA
   Appointments compromissos = new Appointments();
   compromissos.SearchCompleted += compromissos_SearchCompleted;

   //DEFINIÇÃO DA DATA DE INÍCIO E FIM DO PERÍODO DE CONSULTA E TAMBÉM A QUANTIDADE MÁXIMA DE COMPROMISSOS A SEREM RECUPERADOS
   DateTime inicio = new DateTime(2015, 5, 18);
   DateTime final = inicio.AddDays(7);
   int max = 30;

   compromissos.SearchAsync(inicio, final, max, "");
  }

  //ESSE MÉTODOS SERÁ INVOCADO APÓS A FINALIZAÇÃO DA PESQUISA PARA ENTÃO EXIBIRMOS OS DADOS NO LISTBOX
  void compromissos_SearchCompleted(object sender, AppointmentsSearchEventArgs e)
  {
   //OS DADOS CHEGAR ATRAVÉS DO ARGUMENTOS "e" DESTE MÉTODO. REPARE QUE NESSE EXEMPLO ESTAMOS BUSCANDO POR COMPROMISSOS CUJA PALAVRA CHAVE SEJA "INFOESTE".
   lblAgenda.ItemsSource = e.Results.Where(x => x.Subject.Contains("INFOESTE"));
  }
 }
}

Como resultado final podemos verificar a exibição dos compromissos registrados dentro de um determinado período e que contenham a palavra chave “INFOESTE”.

 

Abraços,

Eduardo Henrique Rizo

MCP

Posts Relacionados: 

Marcado com: , , , , , , , , , , ,
Publicado em Windows Phone

Curso Windows Phone – Como criar APPs com suporte a vários idiomas

Olá pessoal, tudo bom?

Uma coisa comum em APPs é o suporte a vários idiomas, recurso também conhecido como Localized Resources. O comportamento natural de uma APP preparada para esse fim é que a mesma seja versionada para idioma que estiver configurado no celular do usuário, dessa forma, se o idioma padrão do dispositivo é o Português (pt-BR) a APP apresenta suas mensagens e demais textos em português do Brasil, caso o idioma padrão seja o English (en-US) os textos são apresentados em inglês dos Estados Unidos e assim sucessivamente.

O suporte padrão para o versionamento das APPs para Windows Phone é através dos arquivos de recursos (Resources.resx) que fazem parte da estrutura padrão de arquivos do projeto da APP no Visual Studio. Veja abaixo:

wp-solution-resources

A estrutura desses arquivos de recursos (.resx) é baseada em um esquema de chave => valor, sendo assim, neles você irá definir as chaves para mensagens e labels e seus respectivos valores em relação ao idioma que você pretende suportar na APP. Veja o exemplo:

resources.resx

Vale ressaltar que o arquivo de recurso Resources.resx é considerado o arquivo com os textos do idioma padrão do seu aplicativo, ou seja, caso a configuração do idioma do celular do usuário seja uma que sua APP não tem suporte, a aplicação irá utilizar os textos definidos no arquivo Resources.resx.

Para ativar o suporte a outros idiomas, você deverá fazer o seguinte: 

  1. Clique com o botão direito no nome do projeto do seu aplicativo e selecione a opção Propriedades;
  2. Na guia Application, na caixa de seleção Supported Cultures, selecione os idiomas que você deseja suportar;
    project-properties
  3. Salve as alterações realizadas e verifique que na pasta Resources do seu projeto foram criados arquivos Resources.XXXX.resx, onde o XXXX seria a sigla do idioma que você selecionou no passo anterior;
    resources.resx.pt-br
  4. Agora, traduza as expressões textuais dos novos arquivos de acordo com seus respectivos idiomas.

E em termos de código XAML, como fica?

Veja abaixo o exemplos para o elemento TextBlock onde o valor da propriedade Text é exibido de acordo com o idioma padrão do celular. Repare que o texto vai ser buscado diretamente no arquivo de recurso e não via hardcode, ou seja, texto inserido no código XAML.

...
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>

<TextBlock Text="{Binding Path=LocalizedResources.PageTitle, Source={StaticResource LocalizedStrings}}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
...

Pronto, agora é só derivar a ideia e aplicar isso em suas APPs.

Abraços,

Eduardo Henrique Rizo

MCP

Post Relacionado: 

Marcado com: , , , , , , , , , , , , ,
Publicado em Windows Phone

LINQ: Criando consultas dinâmicas em C#

Olá pessoal, tudo bom?

O LINQ é uma excepcional ferramenta para consultas em fontes de dados de diferentes espécies, mas pode nos trazer complicações nos momentos onde precisamos personalizar a query de acordo com filtros que o usuário possa escolher na tela.

Por exemplo, suponha que você exiba em um grid a relação de contas bancárias cadastradas para um determinado cliente, porém o usuário pode escolher entre exibir TODAS as contas ou APENAS as que estão ativas em um dado momento.

filtro-linq

Nesse caso, teremos que “montar a query” LINQ dinamicamente, mas como?

Existe uma biblioteca denominada Dynamic LINQ (System.Linq.Dynamic) que nos permite informar critérios de consulta parecidos com SQL para a cláusula Where, OrderBy, etc, porém, para fazer uso desse recurso é necessário referencia-lo em nosso projeto. Vejamos:

Passo 1: Referenciar o namespace System.Linq.Dynamic em nosso projeto através do Package Manager Console do Visual Studio.

PM> Install-Package System.Linq.Dynamic

Passo 2: Montar a consulta dinamicamente. Exemplo:

...
using System.Linq.Dynamic;
...
...
public List<Conta> Contas(int idCedente, bool apenasAtivas)
{
  try
  {
    string criterio = string.Format("CedenteID = {0}", idCedente);
    if (apenasAtivas)
       criterio += " AND Ativa = \"S\"";

    using (DadosEntities contexto = new DadosEntities(Helper.Util.ConnectionString))
    {
      return contexto.CedenteConta.Where(criterio).OrderBy(x => x.BancoID).ToList();
    }
  }
  catch
  {
    return null;
  }
}

Grande abraço,
Eduardo Henrique Rizo

Marcado com: , , , , , , , ,
Publicado em ASP.NET, Entity Framework, LINQ

Curso Windows Phone – Como trocar a cor, ativar o progress indicator e esconder o System Tray via C#

system-trayOlá pessoal, tudo bom?

Todos sabemos que para o Windows Phone, o System Tray é aquela área do sistema dedicada a mostrar o horário, nível da bateria, sinal de rede wifi, sinal 3G, 4G, etc.

O que nem todos devem saber é que via C# podemos manipular o System Tray do Windows Phone e nele habilitar um indicador de progressão, trocar a cor do fundo e da fonte, ou mesmo retirá-lo para que tenhamos mais espaço disponível para o conteúdo de nossa APP.

Desse modo, resolvi escrever esse post para sanar a dúvida de um leitor e também para compartilhar a informação com todos. Vamos ao exemplo:

1) Em primeiro lugar, demonstro o código XAML para montar a interface da APP de exemplo:

...
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
  <TextBlock Text="BLOG DO EDUARDO H. RIZO" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
  <TextBlock Text="system tray" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>

<!--ContentPanel - place additional content here-->
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
  <Button Name="btnTrocarCor" Content="Trocar cor do system tray" Click="btnTrocarCor_Click" />
  <CheckBox Name="ckbAtivarProgress" Content="Ativar o system tray progress indicator" Tap="ckbAtivarProgress_Tap" />
  <CheckBox Name="ckbEsconderSystemTray" Content="Esconder o system tray" Tap="ckbEsconderSystemTray_Tap" />
</StackPanel>
...

system-tray-interface

2) Na sequencia, vamos à codificação C# para de fato manipularmos o System Tray:

...
//Trocando a cor do System tray
private void btnTrocarCor_Click(object sender, RoutedEventArgs e)
{
  SystemTray.SetBackgroundColor(this, Colors.Blue);
  SystemTray.SetForegroundColor(this, Colors.White);
}

//Ativando o Progress Indicator
private void ckbAtivarProgress_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
  ProgressIndicator progress = new ProgressIndicator();
  progress.Text = "Aguarde...";
  progress.IsVisible = (bool)ckbAtivarProgress.IsChecked;
  progress.IsIndeterminate = (bool)ckbAtivarProgress.IsChecked;

  SystemTray.SetProgressIndicator(this, progress);
}

//Escondendo ou mostrando o System tray
private void ckbEsconderSystemTray_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
  SystemTray.IsVisible = !(bool)ckbEsconderSystemTray.IsChecked;
}
...

system-tray-resultado

Espero que essa informação o ajude a escrever APPs com mais recursos para o usuário.

Abraços,

Eduardo Henrique Rizo

MCP

Post Relacionado: 

Marcado com: , , , , , , , , , , , , , ,
Publicado em Windows Phone

Curso Windows Phone – Como determinar a resolução da tela do dispositivo

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: http://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;
  }
...
...

Para o Windows Phone 8.1 utilize o seguinte código para determinar a resolução da tela:


var rawpixelperview = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel;
double width = Math.Round(Window.Current.Bounds.Width * rawpixelperview);
double heigth = Math.Round(Window.Current.Bounds.Height * rawpixelperview);

Fica a dica!

Abraços,

Eduardo Henrique Rizo

MCP

Post Relacionado: 

Fonte: Multi-resolution apps for Windows Phone 8

Marcado com: , , , , , , , , , , , , , , , , , , ,
Publicado em Windows Phone
Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: