Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] SilverLight 4 - Usando o novo controle WebBrowser

Recommended Posts

Você já deve saber que oSilverLight é uma tecnologia web e que atua no lado do cliente.

Na aplicação das versões anteriores doSilverlight para mostrar HTML, ou você usavaum controle - como o RichtTextBox - para convertero HTML para XAML, ou você renderizava o elemento HTML na suaaplicação SilverLight.

Agora, o Silverlight 4 possui o novo controle WebBrowser, que permite exibir HTML de formadireta, ou fornecendo uma URL.

As seguintes propriedades são asmais importantes quando se trabalha com o controle WebBrowser:

  • Source: obtém oudefine a URI que deve ser renderizada no controle WebBrowser;
  • Navigate: especifica o URI que deve sercarregado no controle (atua de forma idêntica à propriedadeSource);
  • NavigateToString: Permite exibir uma string HTMLdiretamente;

O controle WebBrowser só funcionaquando o aplicativo Silverlight é executado fora donavegador (out-of-browser). Se tentarmos executá-lo no navegador,vamos ver um retângulo dizendo que o HTML está desativado.

Vamos mostrar um exemplo práticousando o controle WebBrowser no SilverLight 4. Abra o Visual Web Developer 2010Express Edition, que é gratuito, e crie um novo projeto do tipoSilverLight Application com o nome WebBrowseSilverLight.

41226.gif

Em seguida, aceite as configuraçõessugeridas na janela New SilverLight Application.

41227.gif

Pronto, a solução será criada. Na janela Solution Explorer, veremos a solução criada com dois projetos:

  • O projeto SilverLight - WebBrowseSilverLight
  • O projeto Web - WebBrowseSilverLight.Web

41228.gif

Precisamos habilitar o recurso out-of-browser,e para isso clique com o botão direito sobre o projeto SilverLighte, a seguir, em Properties. A janela de propriedades seráaberta. Clique na opção Enable running application outof the browser.

Na janela de configuração, marque aopção Require elevetate trust when running outside thebrowser, pois assim poderemos acessar qualquer URL. Senão fizer isso, não vai conseguir navegar para páginas fora doseu servidor.

41230.gif

Agora vamos começar com algo bemsimples, declarando o controle WebBrowser noarquivo MainPage.xaml do projeto SilverLight:

41232.gif

A seguir, vamos testar o método NavigateToStringdefinindo o código abaixo no arquivo MainPage.xaml.vbpara renderizar o código HTML diretamente:

Partial Public Class MainPage

Inherits UserControl

 

Public Sub New()

InitializeComponent()

webBrowser.NavigateToString("<h1> Macoratti.net </h1 <p> <strong>Quase tudo para Visual Basic </strong> </p>")

End Sub

End Class

Teremos o seguinte resultado ao executar o projeto:

41233.gif

Para navegar para uma URL,podemos usar o método Navigate:

Ex: webBrowser.Navigate(newUri("http://www.macoratti.net"))

Vejamos outro exemplomais completo para simular um navegador bem simples:

Crie uma nova aplicaçãoSilverLight usando os mesmos passos indicados acima com o nome: NavegadorSilverLight.

A seguir, defina o códigoabaixo no arquivo MainPage.xaml:

41234.gif

<UserControl x:Class="NavegadorSilverLight.MainPage"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

mc:Ignorable="d"

d:DesignHeight="300" d:DesignWidth="400">

 

<Grid x:Name="LayoutRoot" Background="White">

<Grid.RowDefinitions>

<RowDefinition Height="Auto"/>

<RowDefinition />

</Grid.RowDefinitions>

<Grid

x:Name="gridControls">

<Grid.ColumnDefinitions>

<ColumnDefinition />

<ColumnDefinition

Width="Auto" />

</Grid.ColumnDefinitions>

<TextBox

x:Name="txtUri"

Margin="5"

HorizontalAlignment="Stretch" />

<Button

x:Name="btnGo"

Grid.Column="1"

Content=" Ir "

Click="OnGo"

Margin="5" />

</Grid>

<WebBrowser

LoadCompleted="browserControl_LoadCompleted"

Grid.Row="1"

Margin="5"

x:Name="browserControl" />

</Grid>

 

</UserControl>

Agora, vamos definir ocódigo code-behind no arquivo MainPage.xaml.vb:

Partial Public Class MainPage

Inherits UserControl

 

Public Sub New()

InitializeComponent()

End Sub

 

Private Sub OnGo(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)

 

btnGo.IsEnabled = False

browserControl.Navigate(New Uri(txtUri.Text, UriKind.Absolute))

 

End Sub

 

Private Sub browserControl_LoadCompleted(ByVal sender As Object, ByVal e As System.Windows.Navigation.NavigationEventArgs) Handles browserControl.LoadCompleted

btnGo.IsEnabled = True

End Sub

End Class

Executando o projeto iremosobter:

41236.gif

 Pegue o projeto completoaqui:  WebBrowseSilverLight.zipNavegadorSilverLight.zip

 

http://imasters.com.br/artigo/22272/desenvolvimento/silverlight-4-usando-o-novo-controle-webbrowser

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.