[Sledujte také náš twitter @Aglightcz, kde naleznete krátké zprávy nejen o novinkách na našem webu]
WebBrowser je nová komponenta, která umožňuje renderovat HTML uvnitř silverlightí aplikace. Dokáže se vypořádat i s vnořenou aplikací v Silverlightu, ve Flashi a jiné.
Nachází se ve jmenném prostoru System.Windows.Controls.
Zpřístupnit obsah webové stránky můžeme třemi různými způsoby:
Druhý a třetí způsob je ekvivalentní.
Další zajímavou metodou je metoda InvokeScript(String), která umožňuje zavolat skript, jehož jméno je předáno v parametru.
Pouze aplikace v režimu mimo prohlížeč(Out of the Browser - OOB) je schopná renderovat obsah webové stránky. Pokud se pokusíme zpřístupnit obsah webové stránky v rámci prohlížeče, tak se nám objeví prázdný čtverec stejné velikosti jako je vložená WebBrowser komponenta. Je tedy vhodné kontrolovat, zda-li aplikace je spuštěna mimo prohlížeč. Například s použitím podmínky:
if (App.Current.IsRunningOutOfBrowser)
Vytvořme si aplikaci, která bude obsahovat WebBrowser komponentu pro zobrazení obsahu webové stránky, textové pole pro zadání webové adresy a v poslední řadě tlačítko, které vyvolá přechod na webovou stránku.
Aplikace by mohla vypadat podobně jako na obrázku:
XAML kód může vypadat následovně:
<Grid x:Name="LayoutRoot" Background="#FFA7A7A7"> <WebBrowser Height="440" Name="webBrowser1" VerticalAlignment="Top" Margin="12,53,0,0" HorizontalAlignment="Left" Width="552" /> <TextBox Height="23" Width="338" Margin="12,15,412,0" Name="textBox1" VerticalAlignment="Top"HorizontalAlignment="Left" /> <Button Content="-->" Height="23" HorizontalAlignment="Left" Margin="489,15,0,0" Name="button1"VerticalAlignment="Top" Width="75" Click="button1_Click" /> </Grid>
Nyní přidáme událost kliknutí na tlačítko (v designéru dvakrát poklepat na tlačítko)
Do této metody přidáme následující kód:
if (App.Current.IsRunningOutOfBrowser) { webBrowser1.Source = new Uri(textBox1.Text, UriKind.Absolute); } else { MessageBox.Show("Pro prohlížení webové stránky je nutné mít aplikaci v režimu OOB."); }
Po kliknutí na tlačítko otestujeme zda-li je aplikace v režimu OOB. V případě, že aplikace běží mimo webový prohlížeč, pak po kliknutí se ve WebBrowseru vyrenderuje obsah zadané stránky. Do vlastnosti Source je předán nový objekt typu Uri, kterému je předán text z textového pole jako adresa webové stránky. Místo vlastnosti Source jsme mohli použít metodu Navigate(Uri). Oba způsoby jsou totožné.
Nyní nahraďme vlastnost Source metodou NavigateToString():
webBrowser1.NavigateToString(textBox1.Text);
Do textového pole napišme nějaký fragment HTML kódu, WebBrowser by nám tento kód měl správně vyrenderovat. Například:
Působí jako Microsoft Student Partner a pracuje jako vývojář v jedné nadnárodní firmě. Zajímá se o webové technologie a počítačovou grafiku. Pozornost také věnuje hernímu průmyslu
email: davidb@devedu.cz
web: www.aglight.cz