SilverLight
4 - Usando o novo controle WebBrowser
Você já deve saber que o SilverLight é uma tecnologia Web e que ele atua no lado cliente.
Nas versões anteriores do Silverlight para mostrar HTML em sua aplicação ou você usava um controle, como o RichtTextBox, para converter o HTML para XAML ou você renderizava o elemento HTML na sua aplicação SilverLight.
Agora o Silverlight 4 possui o o novo controle WebBrowser que permite exibir HTML quer de forma direta ou fornecendo uma URL.
As seguintes propriedades são as mais importantes quando se trabalha com o controle WebBrowser:
Source: obtém ou
define a URI que deve ser renderizada no controle WebBrowser;
Navigate: especifica o URI que deve ser
carregado no controle (atua de forma idêntica à propriedade
Source);
NavigateToString: Permite exibir uma string HTML
diretamente;
O controle WebBrowser só funciona quando o aplicativo Silverlight é executado fora do navegador(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ático usando o controle WebBrowser no SilverLight 4.
Abra o Visual Web Developer 2010 Express Edition , que é grátis, e crie um novo projeto do tipo SilverLight Application com o nome WebBrowseSilverLight;
![]() |
Em seguida aceite as configurações sugeridas na janela New SilverLight Application ;
![]() |
Pronto a solução será criada:
![]() |
Na janela Solution Explorer
veremos a solução criada com dois projetos:
|
Precisamos habilitar o recurso out-of-browser e para isso clique com o botão direito sobre o projeto SilverLight e a seguir em Properties;
A janela de propriedades será aberta. Clique na opção Enable running application out of the browser;
Na janela de configuração marque a opção Require elevetate trust when running outside the browser pois assim poderemos acessar qualquer URL. Se não fizer isso não vai conseguir navegar para páginas fora do seu servidor.
![]() |
Agora vamos começar com algo bem simples declarando o controle WebBrowser no arquivo MainPage.xaml do projeto SilverLight:
![]() |
A seguir vamos testar o método NavigateToString definindo o código abaixo no arquivo MainPage.xaml.vb para 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
|
Executando o projeto teremos o seguinte resultado:
![]() |
Para navegar para uma URL podemos usar o método Navigate : Ex :
webBrowser.Navigate(new Uri("http://www.macoratti.net"))
Vejamos mais um exemplo mais completo para simular um navegador bem simples.
Crie uma nova aplicação SilverLight usando os mesmos passos indicados acima com o nome : NavegadorSilverLight
A seguir defina o código abaixo no arquivo MainPage.xaml:
![]() |
<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 o có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 iremos obter:
![]() |
Pegue o projeto completo
aqui:
WebBrowseSilverLight.zip e
NavegadorSilverLight.zip
"Dando graças ao Pai que nos fez idôneos para participar da herança dos santos na luz; O qual nos tirou da potestade das trevas, e nos transportou para o reino do Filho do seu amor;" Colossenses 1:12-13
Referências: