#

C# Net: Einfaches C# Codebeispiel zum browser Control.
 
 
Einfaches C# Codebeispiel zum browser Control.
 
Das folgende Code-Beispiel zeigt, wie man eine Webseite mit dem wpf browser Control auswerten kann.
Im Unterschied zu einem Webclient kann ein Browser Control das Verhalten eines echten Web Browser komplett simulieren und somit Ausgaben wie im echten Browser erhalten.
 
IN diesem Beispiel wird die Translate Google Seite aufgerufen und ein Text zur Laufzeit übersetzt.
Der normale Webclient kann hier keine Daten auswerten, dann das Ergebnis der Übersetzung wird erst mit Ajax Elementen zu einem verspäteten Zeitpunkt übergeben.

 
 
Der Browser wird ferngesteuert über die Browser.navigate() Methode. Man gibt einfach die URL Adresse ein und schon läuft der Browser los

//GET
String sURL = "http://translate.google.com?hl=en#de/en/Hallo%2C%20mein%20Name%20ist%20Raimund";
ctlBrowser.Navigate(sURL);
ctlBrowser.LoadCompleted += CtlBrowser_LoadCompleted

 
 
Durch die Anweisung delay kann eine Ladeverzögerung simuliert werden.

Task.Delay(1000); //wait 1sec
get_Results();

 
Anschliessend wird die Seite als HTMLDocument des Browser im aktuellen Zustand ausgelesen.

mshtml.HTMLDocument doc = (mshtml.HTMLDocument) ctlBrowser.Document;
 
mshtml.IHTMLElement element = doc.getElementById("result_box");
if (element!=null)
{
String sResult=element.innerText;
MessageBox.Show("Result=" + sResult);
}

 
 
Komplettes C# Beispiel in Net WPF

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
//----< Namespaces >----
//using HtmlAgilityPack;
//----</ Namespaces >----
 
namespace Browser
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
 
private void btnStart_Click(object sender, RoutedEventArgs e)
{
//-------------------< btnTranslate_Click() >-------------------
//GET
String sURL = "http://translate.google.com?hl=en#de/en/Hallo%2C%20mein%20Name%20ist%20Raimund";
ctlBrowser.Navigate(sURL);
ctlBrowser.LoadCompleted += CtlBrowser_LoadCompleted;
//-------------------</ btnTranslate_Click() >-------------------
}
 
private void CtlBrowser_LoadCompleted(object sender, NavigationEventArgs e)
{
//-------------------< get_Results() >-------------------
Task.Delay(1000); //wait 1sec
get_Results();
}
 
private void get_Results()
{
//-------------------< get_Results() >-------------------
 
mshtml.HTMLDocument doc = (mshtml.HTMLDocument) ctlBrowser.Document;
 
mshtml.IHTMLElement element = doc.getElementById("result_box");
if (element!=null)
{
String sResult=element.innerText;
MessageBox.Show("Result=" + sResult);
}
 
 

//-------------------</ get_Results() >-------------------
}
}
}
 

 
 
Kompletter XAML Code zum Beispiel

<Window x:Class="Browser.MainWindow"
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"
xmlns:local="clr-namespace:Browser"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="46*"/>
<RowDefinition Height="275*"/>
</Grid.RowDefinitions>
<WebBrowser Name="ctlBrowser" Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
<Button x:Name="btnStart" Content="Start" Grid.Row="0" HorizontalAlignment="Left" Margin="10,10,0,4.6" Width="73" Click="btnStart_Click" />
 
</Grid>
</Window>
 

 
Mobile

.

0123movie.net