none
Abrir nova janela XAML? RRS feed

  • Pergunta

  • Pessoal.

    Dúvida bem simples.
    Como posso abrir uma nova janela para um segundo arquivo xaml em meu projeto?
    Em meu projeto Silverlight tenho:

    - Mainpage.xaml
    - arquivo.xaml

    Como posso abrir um popUp com "arquivo.xaml" de minha mainpage?
    Mas na aplicação web tem apenas testpage.html que abre o mainpage.
    Preciso criar uma nova html para isso?




    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    segunda-feira, 23 de janeiro de 2012 16:44

Respostas

  • Para futura consulta:

    Eventos dos botões do XAML MainPage.xaml.cs

     

            private void btnOpen_Click(object sender, RoutedEventArgs e)
            {
                //Abre uma nova janela do browser
                Uri ur = new Uri("open.htm", UriKind.Relative);
                HtmlPage.Window.Navigate(ur,"_blank");
            }
    
            
            private void btnOpen2_Click(object sender, RoutedEventArgs e)
            {
                //Abre conteúdo do XAML na mesma "página"
                Pag2 pg = new Pag2();
                LayoutRoot.Children.Clear();
                LayoutRoot.Children.Add(pg);
            }
    

    App.xml.cs

     

     

            private void Application_Startup(object sender, StartupEventArgs e)
            {
                IDictionary<string,string> prm = e.InitParams;
    
                if (prm.Count > 0)
                {
    
                    string pg = prm["pag"].ToString().ToLower();
    
                    switch (pg)
                    {
                        case "relatorio":
                            this.RootVisual = new Pag1();
                            break;
    
                        default:
                            this.RootVisual = new MainPage();
                            break;
                    }
                }
                else
                {
                    this.RootVisual = new MainPage();
                }
            }
    
    

     

    Open.html 

     

            <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
    		  <param name="source" value="ClientBin/OpenWindow.xap"/>
    		  <param name="onError" value="onSilverlightError" />
    		  <param name="background" value="white" />
    		  <param name="minRuntimeVersion" value="4.0.50826.0" />
    		  <param name="autoUpgrade" value="true" />
    
              <param name="InitParams" value="pag=relatorio" />
    
    		  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
     			  <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
    		  </a>
    	    </object>
    


     




    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    • Marcado como Resposta Glauber Rocha quinta-feira, 26 de janeiro de 2012 15:09
    • Editado Glauber Rocha quinta-feira, 26 de janeiro de 2012 15:10
    quinta-feira, 26 de janeiro de 2012 15:09

Todas as Respostas

  • Pessoal.
    Como faço para dizer que o arquivo html vai abrir "file2.xaml" e não "file1.xaml".
    Sendo que no código fonte, só tem referência a 1 arquivo .xap, tenho dois xaml mas apenas 1 xap.
    Como faz essa referência? 

    Grato antecipadamente.




    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    segunda-feira, 23 de janeiro de 2012 18:47
  • Para futura consulta:

    Eventos dos botões do XAML MainPage.xaml.cs

     

            private void btnOpen_Click(object sender, RoutedEventArgs e)
            {
                //Abre uma nova janela do browser
                Uri ur = new Uri("open.htm", UriKind.Relative);
                HtmlPage.Window.Navigate(ur,"_blank");
            }
    
            
            private void btnOpen2_Click(object sender, RoutedEventArgs e)
            {
                //Abre conteúdo do XAML na mesma "página"
                Pag2 pg = new Pag2();
                LayoutRoot.Children.Clear();
                LayoutRoot.Children.Add(pg);
            }
    

    App.xml.cs

     

     

            private void Application_Startup(object sender, StartupEventArgs e)
            {
                IDictionary<string,string> prm = e.InitParams;
    
                if (prm.Count > 0)
                {
    
                    string pg = prm["pag"].ToString().ToLower();
    
                    switch (pg)
                    {
                        case "relatorio":
                            this.RootVisual = new Pag1();
                            break;
    
                        default:
                            this.RootVisual = new MainPage();
                            break;
                    }
                }
                else
                {
                    this.RootVisual = new MainPage();
                }
            }
    
    

     

    Open.html 

     

            <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
    		  <param name="source" value="ClientBin/OpenWindow.xap"/>
    		  <param name="onError" value="onSilverlightError" />
    		  <param name="background" value="white" />
    		  <param name="minRuntimeVersion" value="4.0.50826.0" />
    		  <param name="autoUpgrade" value="true" />
    
              <param name="InitParams" value="pag=relatorio" />
    
    		  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
     			  <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
    		  </a>
    	    </object>
    


     




    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    • Marcado como Resposta Glauber Rocha quinta-feira, 26 de janeiro de 2012 15:09
    • Editado Glauber Rocha quinta-feira, 26 de janeiro de 2012 15:10
    quinta-feira, 26 de janeiro de 2012 15:09