none
Troca de telas em silverlight com blend 4

    Soru

  • Ola Pessoal,


    Estou começando a desenvolver aplicações Silverlight hospedadas no sharepoint , mas não estou conseguindo entender como fazer a troca de telas com animação, por exemplo, fiz uma aplicação em silverlight que tem uma barra de tarefas em cima como um header no meio o corpo onde fica as funcionalidades que são acessadas através de botões , ( criar contas de computadores, criar contas de usuários ) , ao clicar nestes botões eu escondo o logo e os botões usando animação de movimento junto com controle de opacidade, porem eu não os tiro do layoutRoot dai eu pego um grid que esta com opacidade zero  no canto da tela, movo ele até o centro e ajusto a opacidade dele para 100% pra ficar visível.
    E é justamente ai o problema, meu layoutRoot ta cheio de objetos e estou apanhando muito para trabalhar nas telas com tantos objetos gostaria de conseguir trocar as telas como se fosse uma Master page  asp.net , só que com animações, não faço ideia de como fazer corretamente estas trocas de tela e troca de objetos dentro do grid.
    Se alguém puder me dar uma luz, ou até mesmo o tema a pesquisar sobre este assunto fico muitoo grato mesmo.


    Obrigadão a todos!

    16 Aralık 2011 Cuma 18:07

Yanıtlar

  • Bom , todas as paginas estão sendo carregadas dentro de um objeto chamado frame que é feita a referencia no seu UserControl   :uriMapper="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Controls.Navigation"   

    xmlns

    :navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"

     

    <navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}"
                                  Source="/Home" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
                    <navigation:Frame.UriMapper>
                      <uriMapper:UriMapper>
                        <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
                        <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
                      </uriMapper:UriMapper>
                    </navigation:Frame.UriMapper>
                </navigation:Frame>

     UriMapped  é um maqueamento da sua navegação da pages.

    <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>

    Onde Uri="/Nome_que_vai_aparecer_no_browser"

    MappedUri="/Nome_da_pasta/nome_da_pagina.xaml"

     Nesse caso , se não vier nenhuma instrução no source ele dispara como pagina principal /Views/Home.xaml

    <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>

    No caso o source está /Home

    Se você preferir mudar a pagina principal por exemplo para  /Views/Principal.xaml

    Basta mudar o souce para /Principal

    Para navegar nas paginas a partir da pagina principal  no caso UserControl o nome do frame.evento de navegação

    ContentFrame.Navigate(

    new System.Uri("/Views/OutraPagina.xaml"));

    A partir de uma page  

     

     

     

     

     

    NavigationService.Navigate(new System.Uri("/Views/OutraPagina.xaml"));

     

     ref: http://stuff.seans.com/2010/05/07/silverlight-4-project-types-part-ii-%E2%80%93-silverlight-navigation-application/

    Espero ter ajudado .


    Américo Arvani
    MCP Frw web 2.0 / MCPD (Enterprise Application Developer) Frw web/win/wcf 3.5
    MBA – Post Graduate in Strategic Management of Information Technology
    Se funcionou compartilhe a solução.
    http://americoarvani.blogspot.com
    View Americo Arvani's profile on LinkedIn

    xmlns

    26 Ocak 2012 Perşembe 13:56
    Moderatör

Tüm Yanıtlar

  • I'm starting to develop Silverlight applications hosted in sharepoint, but I can not understand how to make the switch screens with animation, for example, made ​​a silverlight application that has a taskbar on top as a header in the middle of the body where it is the features that are accessed through buttons (create computer accounts, create user accounts), I click these buttons to hide the logo and buttons using motion animation with opacity control, however I do not give me shot LayoutRoot picked up a grid that is with zero opacity in the corner, move it to the center and adjust the opacity to 100% of it to be visible.
    And it is exactly is your problem, my LayoutRoot ta full of objects and I'm catching a lot to work with as many objects on screen I would be able to change the screen as if it were an asp.net master page, but with animation, I have no idea how to properly screen these exchanges and exchange of objects within the grid.
    If someone can give me a light, or even researching the subject I got a lot on this subject even grateful.

    Obrigadão everyone
    18 Aralık 2011 Pazar 21:21
  • Pessoal vi nos exemplos que vem junto ao blend 4 e notei que não exite troca de telas, são varios objetos que ficam na layoutRoot,

    ninguem ai tem o tema para que eu possa pesquisar sobre o assunto ?

     

    Mais uma vez obrigado !

    19 Aralık 2011 Pazartesi 20:42
  • Bom , todas as paginas estão sendo carregadas dentro de um objeto chamado frame que é feita a referencia no seu UserControl   :uriMapper="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Controls.Navigation"   

    xmlns

    :navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"

     

    <navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}"
                                  Source="/Home" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
                    <navigation:Frame.UriMapper>
                      <uriMapper:UriMapper>
                        <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
                        <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
                      </uriMapper:UriMapper>
                    </navigation:Frame.UriMapper>
                </navigation:Frame>

     UriMapped  é um maqueamento da sua navegação da pages.

    <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>

    Onde Uri="/Nome_que_vai_aparecer_no_browser"

    MappedUri="/Nome_da_pasta/nome_da_pagina.xaml"

     Nesse caso , se não vier nenhuma instrução no source ele dispara como pagina principal /Views/Home.xaml

    <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>

    No caso o source está /Home

    Se você preferir mudar a pagina principal por exemplo para  /Views/Principal.xaml

    Basta mudar o souce para /Principal

    Para navegar nas paginas a partir da pagina principal  no caso UserControl o nome do frame.evento de navegação

    ContentFrame.Navigate(

    new System.Uri("/Views/OutraPagina.xaml"));

    A partir de uma page  

     

     

     

     

     

    NavigationService.Navigate(new System.Uri("/Views/OutraPagina.xaml"));

     

     ref: http://stuff.seans.com/2010/05/07/silverlight-4-project-types-part-ii-%E2%80%93-silverlight-navigation-application/

    Espero ter ajudado .


    Américo Arvani
    MCP Frw web 2.0 / MCPD (Enterprise Application Developer) Frw web/win/wcf 3.5
    MBA – Post Graduate in Strategic Management of Information Technology
    Se funcionou compartilhe a solução.
    http://americoarvani.blogspot.com
    View Americo Arvani's profile on LinkedIn

    xmlns

    26 Ocak 2012 Perşembe 13:56
    Moderatör
  • Ola Marcos, consegui fazer exatamente como descreveu ! muito obrigado . Porem Infelizmente só resolveu uma parte do problema.

    por exemplo, tenho uma pagina chamada home que esta dentro do container frame ok !?

    na usercontrol tenho os botões home/ clientes / etc ...

    quando clico em home ele abre a pagina home dentro do frame e dentro da pagina home tenho um link para pagina xpto que gostaria de abrir dentro do frame contido na userControl.

    como faço isto ? passo por parametro o componente para a pagina home  ?

    11 Eylül 2012 Salı 18:46