DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Windows Phone 7 – Tratando a orientação da página no XAML

Veja neste artigo como configurar a página para aceitar as orientações vertical e horizontal, utilizando apenas o código XAML. O Windows Phone traz este recurso nativamente e é chamado de “orientation”, permitindo que possamos disponibilizar esta funcionalidade para o usuário tornando nossa aplicação mais amigável. Mesmo trazendo este recurso nativamente é necessário que construamos a nossa aplicação com as páginas devidamente preparadas para utilizar “orientation”

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

O crescimento do uso de dispositivos móveis como ferramentas de produtividade e entretenimento fez com que os smartphones se tornassem mais rápidos, com processadores mais poderosos, fazendo com que fosse possível agregar novos recursos e funcionalidades para melhorar a interação com o usuário, o que não era possível há alguns anos atrás, devido ao pouco uso e falta de recursos disponíveis. Pensando nesse sentido, os desenvolvedores de aplicações móveis devem ficar atentos para aproveitar ao máximo os recursos disponibilizados pelo aparelho e pelo seu sistema operacional. O uso do recurso de orientação vai permitir a aplicação esteja disponível na posição vertical, horizontal ou vertical e horizontal, esta última é a melhor, pois possibilita que o usuário escolha a posição mais confortável para interagir com a aplicação.

O Windows Phone traz este recurso nativamente e é chamado de “orientation”, permitindo que possamos disponibilizar esta funcionalidade para o usuário tornando nossa aplicação mais amigável. Mesmo trazendo este recurso nativamente é necessário que construamos a nossa aplicação com as páginas devidamente preparadas para utilizar “orientation” . Por padrão, a opção de orientação vem como vertical “retrato”.

Para habilitar o suporte à orientation vamos alterar uma a propriedade da página chamada SupportedOrientation que tem as opções Portrait (somente vertical - padrão), Landscape (somente horizontal) e PortraitOrLanscape (vertical ou horizontal) e faz com que a posição da página seja alterada de acordo com a rotação do aparelho, esta é a opção que vamos usar. Para fazer com que as páginas suportem esta funcionalidade, devemos definir os mecanismos apropriados de Scroll na forma mais simples no xaml ou o evento OrientationChanged do Grid na forma programada, conforme a necessidade da aplicação, fazendo o reposicionamento dos objetos na página. Podemos fazer a definição dessa propriedade de duas formas, diretamente no arquivo XAML ou através de programação, neste artigo iremos focar a alteração via XAML.

Vamos então criar uma aplicação Windows Phone Aplication com o nome Orientacao, utilizando a versão 7.1 do SDK. Mudaremos o título da nossa aplicação para “Artigo DevMedia” e o título da página para “Orientção”, adicionaremos alguns objetos apenas para demonstração do uso de Orientação que são dois “TextBox”, dois “TextBlock” e dois “Button”. Para facilitar a inclusão dos objetos vamos acessar a “MainPage.xaml” e substituir a tag Grid abaixo do título <!--LayoutRoot is the root grid where all page content is placed--> por este código que está logo abaixo (Listagem 1.).

Listagem 1: Código para inclusão dos objetos na página

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

        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="Artigo DevMedia" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="Orientação" 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">
            <StackPanel>
                <TextBlock Height="30" Name="textBlock1" Text="Nome"  Margin="14,10,0,0"/>
                <TextBox Height="72" Name="textBox1" Text="" Margin="0,10,0,0" />
                <TextBlock Height="30" Name="textBlock2" Text="Endereço"  Margin="14,10,0,0" />
                <TextBox Height="72" Name="textBox2" Text="" Margin="0,10,0,0" />
                <Button Content="Salvar" Height="72" Name="button1" Width="160"  Margin="0,20,0,0"/>
                <Button Content="Limpar" Height="72" Name="button2" Width="160" Margin="0,20,0,0"/>
            </StackPanel>
        </Grid>
    </Grid>

Com essa substituição, nossa página deve ficar como a figura abaixo (Figura 1).

Layout da aplicação após a substituição do código em MainPage.xaml

Figura 1: Layout da aplicação após a substituição do código em MainPage.xaml

Se executarmos a nossa aplicação e mudarmos a posição do nosso simulador para a posição horizontal (paisagem), nada vai acontecer, e a sensação que temos é que a aplicação está incompleta e esta é a mesma sensação que o usuário da nossa aplicação terá quando rotacionar o aparelho. Vamos mudar esse cenário para que a aplicação fique mais amigável, então primeiramente mudaremos a propriedade da página “SupportedOrientations”, que pode ser encontrada na penúltima linha do MainPage.xaml antes da tag onde começa a Listagem 1, para "PortraitOrLandscape" que significa que a página vai trabalhar na posição vertical (portrait) ou horizontal (landscape). A outra propriedade “Orientation” que fica logo à frente da propriedade “SupportedOrientations” indica qual será o padrão de orientação da aplicação, no nosso caso vertical (portrait), então as nossas propriedades de página ficarão assim: “SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"”.

Executando nossa aplicação vamos verificar que os objetos antes estáticos irão rotacionar de acordo com a direção que o simulador for rotacionado, mas mesmo assim o ultimo botão ficou inacessível, não conseguimos fazer a rolagem da tela para acessar o botão, então temos que acrescentar o “Scrolling”. Então para fazer isso basta acrescentar a tag ScrollViewer antes da tag <StackPanel Background="Transparent"> conforme o código abaixo ( Listagem 2.).

Listagem 2: Código contendo a tag ScrollViewer

<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ScrollViewer>
        <StackPanel Background="Transparent" >
            <TextBlock Height="30" Name="textBlock1" Text="Nome"  Margin="14,10,0,0"/>
            <TextBox Height="72" Name="textBox1" Text="" Margin="0,10,0,0" />
            <TextBlock Height="30" Name="textBlock2" Text="Endereço"  Margin="14,10,0,0" />
            <TextBox Height="72" Name="textBox2" Text=""  Margin="0,10,0,0" />
            <Button Content="Salvar" Height="72" Name="button1" Width="160"  Margin="0,20,0,0"/>
            <Button Content="Limpar" Height="72" Name="button2" Width="160" Margin="0,20,0,0"/>
        </StackPanel>
    </ScrollViewer>
</Grid>
 

A tag ScrollViewer faz o scroll do “StackPanel”, que por sua vez faz o autosize por padrão quando omitimos a propriedade “Width”.

Executando nossa aplicação poderemos ver que já é possível fazer a rolagem da tela para acessar os botões necessários.

Como vimos, é um processo bastante simples e que garante uma funcionalidade hoje fundamental à aplicações móveis.

Um abraço a todos e até a próxima.


Welington Lourenco Melo De Paula
Welington Lourenço(welingtonl@gmail.com) é desenvolvedor, trabalha com análise e desenvolvimento de sistemas em Visual Fox Pro desde 1995, desde 2000 atua com desenvolvimento de sistemas com acesso a banco de dados (Sql Server, MySql, Oracle). Hoje trabalha na MCJ Assessoria Hospitalar e informática...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03